#ifndef TOR_FEATURE_STATS_BW_ARRAY_ST_H
#define TOR_FEATURE_STATS_BW_ARRAY_ST_H
#define NUM_SECS_ROLLING_MEASURE 10
#define NUM_SECS_BW_SUM_INTERVAL (24*60*60)
#define NUM_SECS_BW_SUM_IS_VALID (5*24*60*60)
#define NUM_TOTALS (NUM_SECS_BW_SUM_IS_VALID/NUM_SECS_BW_SUM_INTERVAL)
struct bw_array_t {
uint64_t obs[NUM_SECS_ROLLING_MEASURE];
int cur_obs_idx;
time_t cur_obs_time;
uint64_t total_obs;
uint64_t max_total;
uint64_t total_in_period;
time_t next_period;
int next_max_idx;
int num_maxes_set;
uint64_t maxima[NUM_TOTALS];
uint64_t totals[NUM_TOTALS];
};
#endif