3d4d9f2fe5ff95c5a7cd18ed305d91a687a70925
[sip-router] / kstats_types.h
1 /* 
2  * Copyright (C) 2010 iptelorg GmbH
3  *
4  * Permission to use, copy, modify, and distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 /** kamailio statistics types.
17  * This file contains type declaration for kamailio statistics.
18  * They are needed when modules are loaded (sr_module.c).
19  * The rest of kamailio stats are in lib/kcore (include
20  * lib/kcore/kstats_wrapper.h or lib/kcore/statistics.h and link with
21  * libkcore).
22  * Note: kamailio statistics are obsolete. Use sr counters in new code
23  * (counters.h).
24  * @file kstats_types.h
25  * @ingroup: core
26  */
27 /*
28  * History:
29  * --------
30  *  2010-08-18  initial version (andrei)
31 */
32
33 #ifndef __kstats_types_h
34 #define __kstats_types_h
35
36 #include "counters.h"
37
38 /* types */
39
40 typedef counter_val_t    stat_val;
41 /* stat_var is always used as a pointer in k, we missuse
42    stat_var* for holding out counter id */
43 typedef void stat_var;
44 /* get val callback
45  * TODO: change it to counter_cbk_f compatible callback?
46  */
47 typedef counter_val_t (*stat_function)(void);
48
49 /* statistic module interface */
50 struct stat_export_s {
51         char* name;
52         int flags;
53         stat_var** stat_pointer; /* pointer to the memory location
54                                                                 (where a counter handle will be stored)
55                                                                 Note: it's a double pointer because of
56                                                                 the original k version which needed it
57                                                                 allocated in shm. This version
58                                                                 will store the counter id at *stat_pointer.
59                                                           */
60 };
61
62 typedef struct stat_export_s stat_export_t;
63
64
65 #endif /*__kstats_types_h*/
66
67 /* vi: set ts=4 sw=4 tw=79:ai:cindent: */