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