#pragma once

#ifdef __cplusplus
extern "C"
{
#endif

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

struct thread_stat
{
    struct packet_io_stat *packet_io;
    struct ip_reassembly_stat *ip_reassembly;
    struct session_manager_stat *session_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);
void stellar_stat_print(struct stellar_stat *stat, const struct thread_stat *thr_stat, uint16_t thr_idx);

#ifdef __cplusplus
}
#endif
