Data Structures |
| struct | rate_ctr_per_intv |
| | data we keep for each of the intervals More...
|
| struct | rate_ctr |
| | data we keep for each actual value More...
|
| struct | rate_ctr_desc |
| | rate counter description More...
|
| struct | rate_ctr_group_desc |
| | description of a rate counter group More...
|
| struct | rate_ctr_group |
| | One instance of a counter group class. More...
|
Files |
| file | rate_ctr.h |
| file | rate_ctr.c |
Defines |
|
#define | RATE_CTR_INTV_NUM 4 |
| | Number of rate counter intervals.
|
Typedefs |
|
typedef int(* | rate_ctr_handler_t )(struct rate_ctr_group *, struct rate_ctr *, const struct rate_ctr_desc *, void *) |
|
typedef int(* | rate_ctr_group_handler_t )(struct rate_ctr_group *, void *) |
Enumerations |
| enum | rate_ctr_intv { RATE_CTR_INTV_SEC,
RATE_CTR_INTV_MIN,
RATE_CTR_INTV_HOUR,
RATE_CTR_INTV_DAY
} |
| | Rate counter interval. More...
|
Functions |
| struct rate_ctr_group * | rate_ctr_group_alloc (void *ctx, const struct rate_ctr_group_desc *desc, unsigned int idx) |
| | Allocate a new group of counters according to description.
|
|
static void | rate_ctr_group_upd_idx (struct rate_ctr_group *grp, unsigned int idx) |
|
void | rate_ctr_group_free (struct rate_ctr_group *grp) |
| | Free the memory for the specified group of counters.
|
|
void | rate_ctr_add (struct rate_ctr *ctr, int inc) |
| | Add a number to the counter.
|
|
static void | rate_ctr_inc (struct rate_ctr *ctr) |
| | Increment the counter by 1.
|
|
int64_t | rate_ctr_difference (struct rate_ctr *ctr) |
| | Return the counter difference since the last call to this function.
|
|
int | rate_ctr_init (void *tall_ctx) |
| | Initialize the counter module.
|
|
struct rate_ctr_group * | rate_ctr_get_group_by_name_idx (const char *name, const unsigned int idx) |
| | Search for counter group based on group name and index.
|
|
struct rate_ctr * | rate_ctr_get_by_name (const struct rate_ctr_group *ctrg, const char *name) |
| | Search for counter group based on group name.
|
| int | rate_ctr_for_each_counter (struct rate_ctr_group *ctrg, rate_ctr_handler_t handle_counter, void *data) |
| | Iterate over all counters.
|
|
int | rate_ctr_for_each_group (rate_ctr_group_handler_t handle_group, void *data) |
|
static | LLIST_HEAD (rate_ctr_groups) |
|
static void | interval_expired (struct rate_ctr *ctr, enum rate_ctr_intv intv) |
|
static void | rate_ctr_group_intv (struct rate_ctr_group *grp) |
|
static void | rate_ctr_timer_cb (void *data) |
Variables |
|
static void * | tall_rate_ctr_ctx |
|
static struct osmo_timer_list | rate_ctr_timer |
|
static uint64_t | timer_ticks |