23 #ifndef STATS_COMPAT_H
24 #define STATS_COMPAT_H
47 typedef enum _StatsByteCounterPrecision
54 typedef struct _StatsByteCounter
58 #if STATS_COUNTER_MAX_VALUE < UINT64_MAX
73 #if STATS_COUNTER_MAX_VALUE < UINT64_MAX
76 switch (min_precision)
79 self->precision = 1024;
83 self->precision = 1024 * 1024;
87 self->precision = 1024 * 1024 * 1024;
91 g_assert_not_reached();
114 #if STATS_COUNTER_MAX_VALUE < UINT64_MAX
118 self->counter_cache.value += add;
120 if (
self->counter_cache.value > (gssize)
self->precision)
122 stats_counter_add(
self->counter,
self->counter_cache.value /
self->precision);
123 self->counter_cache.value %=
self->precision;
126 stats_counter_add(
self->counter, add);
#define self
Definition: rcptid.c:38
void stats_cluster_single_key_add_unit(StatsClusterKey *key, StatsClusterUnit stored_unit)
Definition: stats-cluster-single.c:151
@ SC_TYPE_SINGLE_VALUE
Definition: stats-cluster-single.h:33
StatsClusterUnit
Definition: stats-cluster.h:50
@ SCU_KIB
Definition: stats-cluster.h:60
@ SCU_BYTES
Definition: stats-cluster.h:59
@ SCU_MIB
Definition: stats-cluster.h:61
@ SCU_GIB
Definition: stats-cluster.h:62
StatsByteCounterPrecision
Definition: stats-compat.h:48
@ SBCP_GIB
Definition: stats-compat.h:51
@ SBCP_KIB
Definition: stats-compat.h:49
@ SBCP_MIB
Definition: stats-compat.h:50
void stats_unlock(void)
Definition: stats-registry.c:63
StatsCluster * stats_register_counter(gint stats_level, const StatsClusterKey *sc_key, gint type, StatsCounterItem **counter)
Definition: stats-registry.c:225
void stats_lock(void)
Definition: stats-registry.c:56
void stats_unregister_counter(const StatsClusterKey *sc_key, gint type, StatsCounterItem **counter)
Definition: stats-registry.c:302
Definition: stats-compat.h:55
StatsCounterItem * counter
Definition: stats-compat.h:56
Definition: stats-counter.h:67
Definition: atomic-gssize.h:33
struct tm key
Definition: cache.c:63