#ifndef _SESSION_TABLE_H #define _SESSION_TABLE_H #ifdef __cplusplus extern "C" { #endif #include "session_private.h" struct session_table; struct session_table *session_table_new(); void session_table_free(struct session_table *table); uint64_t session_table_get_count(struct session_table *table); typedef void (*session_free_cb)(struct session *sess, void *arg); void session_table_set_freecb(struct session_table *table, session_free_cb free_cb, void *arg); // return 0: success // return -1: failed int session_table_add(struct session_table *table, const struct tuple6 *tuple, struct session *sess); void session_table_del(struct session_table *table, const struct tuple6 *tuple); struct session *session_table_find_tuple(struct session_table *table, const struct tuple6 *tuple); struct session *session_table_find_lru(struct session_table *table); #ifdef __cplusplus } #endif #endif