session table support get oldest/newest session

This commit is contained in:
luwenpeng
2023-12-13 17:56:27 +08:00
parent fc5b5857b8
commit 92e5110503
7 changed files with 200 additions and 26 deletions

View File

@@ -8,29 +8,31 @@ extern "C"
#include <stdint.h>
#include "session_address.h"
enum session_state
{
SESSION_STATE_NONE = 0,
SESSION_STATE_OPENING,
SESSION_STATE_ACTIVE,
SESSION_STATE_DISCARD,
SESSION_STATE_CLOSING,
SESSION_STATE_CLOSED,
SESSION_STATE_FREE,
SESSION_STATE_DISCARD,
};
enum session_type
{
SESSION_TYPE_NONE = 0,
SESSION_TYPE_TCP,
SESSION_TYPE_TCP_STREAM, // A TCP stream session is derived from the original TCP session
SESSION_TYPE_UDP,
};
enum session_event
{
SESSION_EVENT_NONE = 0,
SESSION_EVENT_OPEN,
SESSION_EVENT_DATA,
SESSION_EVENT_CLOSE,
SESSION_EVENT_OPENING,
SESSION_EVENT_ACTIVE,
SESSION_EVENT_CLOSING,
SESSION_EVENT_DISCARD,
SESSION_EVENT_TIMEOUT,
// Add new event before SESSION_EVENT_MAX
@@ -46,7 +48,7 @@ struct metadata
struct session;
/******************************************************************************
* session
* session base info
******************************************************************************/
void session_init(struct session *sess);
@@ -84,11 +86,14 @@ struct metadata *session_get0_s2c_1st_md(struct session *sess);
// session timestamp
void session_set_create_time(struct session *sess, uint64_t timestamp);
void session_set_last_time(struct session *sess, uint64_t timestamp);
void session_set_expire_time(struct session *sess, uint64_t timestamp);
uint64_t session_get_create_time(struct session *sess);
uint64_t session_get_last_time(struct session *sess);
uint64_t session_get_expire_time(struct session *sess);
/******************************************************************************
* session event
******************************************************************************/
// session event
bool session_push_event(struct session *sess, uint32_t event);
bool session_pop_event(struct session *sess, uint32_t *event);