#ifndef _STAT_H
#define _STAT_H

#ifdef __cplusplus
extern "C"
{
#endif

#include "packet_io.h"
#include "ip_reassembly.h"
#include "session_manager.h"

#define STAT_LOG_ERROR(format, ...) LOG_ERROR("stat", format, ##__VA_ARGS__)

struct thread_stat
{
    struct io_stat *io;
    struct ip_reassembly_stat *ip_rea;
    struct session_manager_stat *sess_mgr;
};

struct stellar_stat;
struct stellar_stat *stellar_stat_new(uint16_t nr_thread);
void stellar_stat_free(struct stellar_stat *stat);
void stellar_stat_output(struct stellar_stat *stat);
void stellar_stat_merge(struct stellar_stat *stat, const struct thread_stat *thr_stat, uint16_t thr_idx);

#ifdef __cplusplus
}
#endif

#endif
