libosmocore/src/core/stat_item_internal.h

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;
};
/*! @} */