mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
3.5 KiB
151 lines
3.5 KiB
/*
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2010 iptelorg GmbH
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
/** k compatible statistics implemented in terms of sr counters.
|
|
* New functions:
|
|
* stats_support() - partially replaces get_stats_collector().
|
|
* Returns 1 if statistics support is compiled, 0 otherwise.
|
|
* get_stat_name() - returns the name of a stat_var.
|
|
* get_stat_module() - returns the module of a stat_var.
|
|
* Removed functions:
|
|
* get_stats_collector()
|
|
* destroy_stats_collector()
|
|
* Removed variables/structures:
|
|
* stats_collector
|
|
* module_stats
|
|
*
|
|
* @file kstats_wrapper.h
|
|
* @ingroup: libkcore
|
|
*/
|
|
/*
|
|
* History:
|
|
* --------
|
|
* 2010-08-08 initial version (andrei)
|
|
* 2010-08-18 type declaration needed by sr_module.c moved to
|
|
* ../../kstats_types.h (andrei)
|
|
*/
|
|
|
|
#ifndef __kstats_wrapper_h
|
|
#define __kstats_wrapper_h
|
|
|
|
#include "../../counters.h"
|
|
#include "../../kstats_types.h"
|
|
|
|
/* k stat flags */
|
|
#define STAT_NO_RESET 1 /* used in dialog(k), nat_traversal(k),
|
|
registrar(k), statistics(k), usrloc(k) */
|
|
/* #define STAT_NO_SYN 2 -- not used */
|
|
#define STAT_SHM_NAME 4 /* used only from usrloc(k) */
|
|
#define STAT_IS_FUNC 8
|
|
|
|
|
|
|
|
#ifdef STATISTICS
|
|
|
|
/* statistics support check */
|
|
#define stats_support() 1
|
|
|
|
int register_stat( char *module, char *name, stat_var **pvar, int flags);
|
|
int register_module_stats(char *module, stat_export_t *stats);
|
|
|
|
inline static stat_var* get_stat(str *name)
|
|
{
|
|
counter_handle_t h;
|
|
str grp;
|
|
|
|
grp.s = 0;
|
|
grp.len = 0;
|
|
if (counter_lookup_str(&h, &grp, name) < 0)
|
|
return 0;
|
|
return (void*)(unsigned long)h.id;
|
|
}
|
|
|
|
|
|
|
|
inline static unsigned long get_stat_val(stat_var *v)
|
|
{
|
|
counter_handle_t h;
|
|
h.id = (unsigned short)(unsigned long)v;
|
|
return (unsigned long)counter_get_val(h);
|
|
}
|
|
|
|
|
|
|
|
inline static char* get_stat_name(stat_var *v)
|
|
{
|
|
counter_handle_t h;
|
|
h.id = (unsigned short)(unsigned long)v;
|
|
return counter_get_name(h);
|
|
}
|
|
|
|
|
|
|
|
inline static char* get_stat_module(stat_var *v)
|
|
{
|
|
counter_handle_t h;
|
|
h.id = (unsigned short)(unsigned long)v;
|
|
return counter_get_group(h);
|
|
}
|
|
|
|
|
|
|
|
inline static void update_stat(stat_var* v, int n)
|
|
{
|
|
counter_handle_t h;
|
|
h.id = (unsigned short)(unsigned long)v;
|
|
counter_add(h, n);
|
|
}
|
|
|
|
|
|
|
|
inline static void reset_stat(stat_var* v)
|
|
{
|
|
counter_handle_t h;
|
|
h.id = (unsigned short)(unsigned long)v;
|
|
counter_reset(h);
|
|
}
|
|
|
|
|
|
#define if_update_stat(c, var, n) \
|
|
do{ \
|
|
if ((c)) update_stat((var), (n)); \
|
|
}while(0)
|
|
|
|
#define if_reset_stat(c, var) \
|
|
do{ \
|
|
if ((c)) reset_stat((var)); \
|
|
}while(0)
|
|
|
|
#else /* STATISTICS */
|
|
|
|
/* statistics support check */
|
|
#define stats_support() 0
|
|
#define register_module_stats(mod, stats) 0
|
|
#define register_stat(mod, name, var, flags) 0
|
|
#define get_stat(name) 0
|
|
#define get_stat_val(var) 0
|
|
#define update_stat(v, n)
|
|
#define reset_stat(v)
|
|
#define if_update_stat(c, v, n)
|
|
#define if_reset_stat(c, v)
|
|
|
|
#endif /* STATISTICS */
|
|
|
|
#endif /*__kstats_wrapper_h*/
|
|
|
|
/* vi: set ts=4 sw=4 tw=79:ai:cindent: */
|