Data Structures |
struct | osmo_stat_item_value |
struct | osmo_stat_item |
| data we keep for each actual value More...
|
struct | osmo_stat_item_desc |
| statistics value description More...
|
struct | osmo_stat_item_group_desc |
| description of a statistics value group More...
|
struct | osmo_stat_item_group |
| One instance of a counter group class. More...
|
Files |
file | stat_item.h |
file | stat_item.c |
Defines |
#define | STAT_ITEM_NOVALUE_ID 0 |
Typedefs |
typedef int(* | osmo_stat_item_handler_t )(struct osmo_stat_item_group *, struct osmo_stat_item *, void *) |
typedef int(* | osmo_stat_item_group_handler_t )(struct osmo_stat_item_group *, void *) |
Functions |
struct osmo_stat_item_group * | osmo_stat_item_group_alloc (void *ctx, const struct osmo_stat_item_group_desc *desc, unsigned int idx) |
| Allocate a new group of counters according to description.
|
static void | osmo_stat_item_group_udp_idx (struct osmo_stat_item_group *grp, unsigned int idx) |
void | osmo_stat_item_group_free (struct osmo_stat_item_group *grp) |
| Free the memory for the specified group of counters.
|
void | osmo_stat_item_set (struct osmo_stat_item *item, int32_t value) |
int | osmo_stat_item_init (void *tall_ctx) |
| Initialize the stat item module.
|
struct osmo_stat_item_group * | osmo_stat_item_get_group_by_name_idx (const char *name, const unsigned int idx) |
| Search for item group based on group name and index.
|
struct osmo_stat_item * | osmo_stat_item_get_by_name (const struct osmo_stat_item_group *statg, const char *name) |
| Search for item group based on group name.
|
int | osmo_stat_item_get_next (const struct osmo_stat_item *item, int32_t *idx, int32_t *value) |
| Retrieve the next value from the osmo_stat_item object. If a new value has been set, it is returned. The idx is used to decide which value to return. On success, *idx is updated to refer to the next unread value. If values have been missed due to FIFO overflow, *idx is incremented by (1 + num_lost). This way, the osmo_stat_item object can be kept stateless from the reader's perspective and therefore be used by several backends simultaneously.
|
static int32_t | osmo_stat_item_get_last (const struct osmo_stat_item *item) |
| Get the last (freshest) value.
|
int | osmo_stat_item_discard (const struct osmo_stat_item *item, int32_t *idx) |
| Skip all values of the item and update idx accordingly.
|
int | osmo_stat_item_discard_all (int32_t *idx) |
| Skip all values of all items and update idx accordingly.
|
int | osmo_stat_item_for_each_item (struct osmo_stat_item_group *statg, osmo_stat_item_handler_t handle_item, void *data) |
| Iteate over all items.
|
int | osmo_stat_item_for_each_group (osmo_stat_item_group_handler_t handle_group, void *data) |
static | LLIST_HEAD (osmo_stat_item_groups) |
Variables |
static int32_t | global_value_id = 0 |
static void * | tall_stat_item_ctx |
Retrieve the next value from the osmo_stat_item object. If a new value has been set, it is returned. The idx is used to decide which value to return. On success, *idx is updated to refer to the next unread value. If values have been missed due to FIFO overflow, *idx is incremented by (1 + num_lost). This way, the osmo_stat_item object can be kept stateless from the reader's perspective and therefore be used by several backends simultaneously.
- Parameters:
-
val | the osmo_stat_item object |
idx | identifies the next value to be read |
value | a pointer to store the value |
- Returns:
- the increment of the index (0: no value has been read, 1: one value has been taken, (1+n): n values have been skipped, one has been taken)
References last_offs, osmo_stat_item_desc::num_values, and values.