#ifndef _STATISTICS_H
#define _STATISTICS_H

/*! \file statistics.h
 *  \brief Common routines regarding statistics */

/*! structure representing a single counter */
struct osmo_counter {
	struct llist_head list;		/*!< \brief internal list head */
	const char *name;		/*!< \brief human-readable name */
	const char *description;	/*!< \brief humn-readable description */
	unsigned long value;		/*!< \brief current value */
};

/*! \brief Increment counter */
static inline void osmo_counter_inc(struct osmo_counter *ctr)
{
	ctr->value++;
}

/*! \brief Get current value of counter */
static inline unsigned long osmo_counter_get(struct osmo_counter *ctr)
{
	return ctr->value;
}

/*! \brief Reset current value of counter to 0 */
static inline void osmo_counter_reset(struct osmo_counter *ctr)
{
	ctr->value = 0;
}

/*! \brief Allocate a new counter */
struct osmo_counter *osmo_counter_alloc(const char *name);

/*! \brief Free the specified counter
 *  \param[ctr] Counter
 */
void osmo_counter_free(struct osmo_counter *ctr);

/*! \brief Iteate over all counters
 *  \param[in] handle_counter Call-back function
 *  \param[in] data Private dtata handed through to \a handle_counter
 */
int osmo_counters_for_each(int (*handle_counter)(struct osmo_counter *, void *), void *data);

/*! \brief Resolve counter by human-readable name
 *  \param[in] name human-readable name of counter
 *  \returns pointer to counter (\ref osmo_counter) or NULL otherwise
 */
struct osmo_counter *osmo_counter_get_by_name(const char *name);

#endif /* _STATISTICS_H */
