31 lines
1.0 KiB
C
31 lines
1.0 KiB
C
#ifndef _SESSION_TABLE_H
|
|
#define _SESSION_TABLE_H
|
|
|
|
#ifdef __cpluscplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "session.h"
|
|
|
|
struct session_table;
|
|
struct session_table *session_table_create();
|
|
void session_table_destroy(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_session(struct session_table *table, const struct tuple6 *tuple, struct session *sess);
|
|
void session_table_delete_session(struct session_table *table, const struct tuple6 *tuple);
|
|
struct session *session_table_find_session(struct session_table *table, const struct tuple6 *tuple);
|
|
struct session *session_table_find_least_recently_unused_session(struct session_table *table);
|
|
struct session *session_table_find_least_recently_used_session(struct session_table *table);
|
|
|
|
#ifdef __cpluscplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|