🦄 refactor(stellar_module to module): simplify stellar module to module

This commit is contained in:
yangwei
2024-11-05 09:39:10 +08:00
parent a415794428
commit 7f81e46522
17 changed files with 274 additions and 279 deletions

View File

@@ -9,7 +9,6 @@
#include "fieldstat/fieldstat_easy.h"
#define CLEAN_SESSION_BURST 1024
#define SESSION_MANAGER_MODULE_NAME "session_manager_module"
#pragma GCC diagnostic ignored "-Wunused-parameter"
@@ -33,7 +32,7 @@ struct session_manager
struct session_manager_sche *sche;
struct session_manager_rte *rte[MAX_THREAD_NUM];
struct mq_runtime *mq[MAX_THREAD_NUM];
struct stellar_module_manager *mod_mgr;
struct module_manager *mod_mgr;
};
/******************************************************************************
@@ -94,7 +93,7 @@ static void on_sess_msg_free(void *msg, void *args)
if (session_get_current_state(sess) == SESSION_STATE_CLOSED)
{
struct session_manager *sess_mgr = (struct session_manager *)args;
int thread_id = stellar_module_manager_get_thread_id(sess_mgr->mod_mgr);
int thread_id = module_manager_get_thread_id(sess_mgr->mod_mgr);
struct session_manager_rte *sess_mgr_rte = sess_mgr->rte[thread_id];
char buffer[4096] = {0};
@@ -118,7 +117,7 @@ static void on_tcp_payload_msg_free(void *msg, void *args)
static void on_packet_forward(struct packet *pkt, enum packet_stage stage, void *args)
{
struct session_manager *sess_mgr = (struct session_manager *)args;
int thread_id = stellar_module_manager_get_thread_id(sess_mgr->mod_mgr);
int thread_id = module_manager_get_thread_id(sess_mgr->mod_mgr);
struct mq_runtime *mq_rte = sess_mgr->mq[thread_id];
struct session_manager_rte *sess_mgr_rte = sess_mgr->rte[thread_id];
@@ -209,7 +208,7 @@ fast_path:
static void on_packet_output(struct packet *pkt, enum packet_stage stage, void *args)
{
struct session_manager *sess_mgr = (struct session_manager *)args;
int thread_id = stellar_module_manager_get_thread_id(sess_mgr->mod_mgr);
int thread_id = module_manager_get_thread_id(sess_mgr->mod_mgr);
struct session_manager_rte *sess_mgr_rte = sess_mgr->rte[thread_id];
struct session *sess = (struct session *)packet_get_exdata(pkt, sess_mgr->sche->pkt_ex_id);
@@ -254,11 +253,11 @@ static void on_packet_output(struct packet *pkt, enum packet_stage stage, void *
}
}
static void on_polling(struct stellar_module_manager *mod_mgr, void *args)
static void on_polling(struct module_manager *mod_mgr, void *args)
{
uint64_t now_ms = clock_get_real_time_ms();
struct session_manager *sess_mgr = (struct session_manager *)args;
int thread_id = stellar_module_manager_get_thread_id(mod_mgr);
int thread_id = module_manager_get_thread_id(mod_mgr);
struct session_manager_rte *sess_mgr_rte = sess_mgr->rte[thread_id];
struct session_manager_stat *sess_mgr_stat = session_manager_rte_get_stat(sess_mgr_rte);
@@ -523,25 +522,22 @@ void session_manager_clean(struct session_manager *sess_mgr, uint16_t thread_id)
* session manager module
******************************************************************************/
struct session_manager *stellar_module_get_session_manager(struct stellar_module_manager *mod_mgr)
struct session_manager *module_to_session_manager(struct module *mod)
{
assert(mod_mgr);
struct stellar_module *sess_mgr_mod = stellar_module_manager_get_module(mod_mgr, SESSION_MANAGER_MODULE_NAME);
if (sess_mgr_mod == NULL)
{
return NULL;
}
return stellar_module_get_ctx(sess_mgr_mod);
assert(mod);
assert(strcmp(module_get_name(mod), SESSION_MANAGER_MODULE_NAME) == 0);
return module_get_ctx(mod);
}
struct stellar_module *session_manager_on_init(struct stellar_module_manager *mod_mgr)
struct module *session_manager_on_init(struct module_manager *mod_mgr)
{
assert(mod_mgr);
struct packet_manager *pkt_mgr = stellar_module_get_packet_manager(mod_mgr);
struct module *pkt_mgr_mod= module_manager_get_module(mod_mgr, PACKET_MANAGER_MODULE_NAME);
struct packet_manager *pkt_mgr = module_to_packet_manager(pkt_mgr_mod);
assert(pkt_mgr);
struct mq_schema *mq_sche = stellar_module_manager_get_mq_schema(mod_mgr);
struct mq_schema *mq_sche = module_manager_get_mq_schema(mod_mgr);
assert(mq_sche);
const char *toml_file = stellar_module_manager_get_toml_path(mod_mgr);
const char *toml_file = module_manager_get_toml_path(mod_mgr);
assert(toml_file);
struct session_manager *sess_mgr = session_manager_new(pkt_mgr, mq_sche, toml_file);
@@ -549,37 +545,37 @@ struct stellar_module *session_manager_on_init(struct stellar_module_manager *mo
{
return NULL;
}
stellar_module_manager_polling_subscribe(mod_mgr, on_polling, sess_mgr);
module_manager_polling_subscribe(mod_mgr, on_polling, sess_mgr);
struct stellar_module *sess_mgr_mod = stellar_module_new(SESSION_MANAGER_MODULE_NAME, NULL);
struct module *sess_mgr_mod = module_new(SESSION_MANAGER_MODULE_NAME, NULL);
if (sess_mgr_mod == NULL)
{
SESSION_MANAGER_LOG_ERROR("failed to create session_manager");
session_manager_free(sess_mgr);
return NULL;
}
stellar_module_set_ctx(sess_mgr_mod, sess_mgr);
module_set_ctx(sess_mgr_mod, sess_mgr);
SESSION_MANAGER_LOG_FATAL("session_manager init");
return sess_mgr_mod;
}
void session_manager_on_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod)
void session_manager_on_exit(struct module_manager *mod_mgr, struct module *mod)
{
if (mod)
{
struct session_manager *sess_mgr = stellar_module_get_ctx(mod);
struct session_manager *sess_mgr = module_get_ctx(mod);
session_manager_free(sess_mgr);
stellar_module_free(mod);
module_free(mod);
SESSION_MANAGER_LOG_FATAL("session_manager exit");
}
}
struct stellar_module *session_manager_on_thread_init(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod)
struct module *session_manager_on_thread_init(struct module_manager *mod_mgr, int thread_id, struct module *mod)
{
struct session_manager *sess_mgr = stellar_module_get_ctx(mod);
struct session_manager *sess_mgr = module_get_ctx(mod);
assert(sess_mgr);
struct mq_runtime *mq_rte = stellar_module_manager_get_mq_runtime(mod_mgr);
struct mq_runtime *mq_rte = module_manager_get_mq_runtime(mod_mgr);
assert(mq_rte);
if (session_manager_init(sess_mgr, thread_id, mq_rte) != 0)
@@ -593,9 +589,9 @@ struct stellar_module *session_manager_on_thread_init(struct stellar_module_mana
}
}
void session_manager_on_thread_exit(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod)
void session_manager_on_thread_exit(struct module_manager *mod_mgr, int thread_id, struct module *mod)
{
struct session_manager *sess_mgr = stellar_module_get_ctx(mod);
struct session_manager *sess_mgr = module_get_ctx(mod);
assert(sess_mgr);
session_manager_clean(sess_mgr, thread_id);
}