mirror of https://gerrit.osmocom.org/libosmocore
36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
|
/*! \file stat_item_internal.h
|
||
|
* internal definitions for the osmo_stat_item API */
|
||
|
#pragma once
|
||
|
|
||
|
/*! \addtogroup osmo_stat_item
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
struct osmo_stat_item_period {
|
||
|
/*! Number of osmo_stat_item_set() that occurred during the reporting period, zero if none. */
|
||
|
uint32_t n;
|
||
|
/*! Smallest value seen in a reporting period. */
|
||
|
int32_t min;
|
||
|
/*! Most recent value passed to osmo_stat_item_set(), or the item->desc->default_value if none. */
|
||
|
int32_t last;
|
||
|
/*! Largest value seen in a reporting period. */
|
||
|
int32_t max;
|
||
|
/*! Sum of all values passed to osmo_stat_item_set() in the reporting period. */
|
||
|
int64_t sum;
|
||
|
};
|
||
|
|
||
|
/*! data we keep for each actual item */
|
||
|
struct osmo_stat_item {
|
||
|
/*! back-reference to the item description */
|
||
|
const struct osmo_stat_item_desc *desc;
|
||
|
|
||
|
/*! Current reporting period / current value. */
|
||
|
struct osmo_stat_item_period value;
|
||
|
|
||
|
/*! The results of the previous reporting period. According to these, the stats reporter decides whether to
|
||
|
* re-send values or omit an unchanged value from a report. */
|
||
|
struct osmo_stat_item_period reported;
|
||
|
};
|
||
|
|
||
|
/*! @} */
|