summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--decoders/appid/appid.c14
-rw-r--r--decoders/lpi_plus/lpi_plus.h5
-rw-r--r--decoders/lpi_plus/lpip_module.c27
-rw-r--r--include/stellar/appid.h6
-rw-r--r--include/stellar/module.h52
-rw-r--r--include/stellar/module_manager.h52
-rw-r--r--include/stellar/packet.h5
-rw-r--r--include/stellar/session.h5
-rw-r--r--infra/module_manager/module_manager.c53
-rw-r--r--infra/module_manager/module_manager_interna.h10
-rw-r--r--infra/module_manager/test/gtest_module_manager_main.cpp162
-rw-r--r--infra/packet_manager/packet_manager.c46
-rw-r--r--infra/session_manager/session_manager.c56
-rw-r--r--infra/stellar_core.c17
-rw-r--r--infra/version.map2
-rw-r--r--test/lpi_plus/gtest_lpip_module.c21
-rw-r--r--test/session_debugger/session_debugger.c20
17 files changed, 274 insertions, 279 deletions
diff --git a/decoders/appid/appid.c b/decoders/appid/appid.c
index 642e8e6..6182dd8 100644
--- a/decoders/appid/appid.c
+++ b/decoders/appid/appid.c
@@ -25,25 +25,25 @@ static void stellar_appid_on_msg_dispatch(int topic_id __unused,
appid_cb(appid_msg->sess, appid_msg->origin, appid_msg->appid, appid_msg->appid_num, on_msg_cb_arg);
}
-int stellar_appid_subscribe(struct stellar_module_manager *mod_mgr, on_appid_callback *cb, void *args)
+int stellar_appid_subscribe(struct module_manager *mod_mgr, on_appid_callback *cb, void *args)
{
if(mod_mgr==NULL)return -1;
- int appid_topic_id=mq_schema_get_topic_id(stellar_module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC);
+ int appid_topic_id=mq_schema_get_topic_id(module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC);
if(appid_topic_id<0)
{
- appid_topic_id=mq_schema_create_topic(stellar_module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC, stellar_appid_on_msg_dispatch, mod_mgr, appid_message_free, NULL);
+ appid_topic_id=mq_schema_create_topic(module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC, stellar_appid_on_msg_dispatch, mod_mgr, appid_message_free, NULL);
}
- return mq_schema_subscribe(stellar_module_manager_get_mq_schema(mod_mgr), appid_topic_id, (on_msg_cb_func *)cb, args);
+ return mq_schema_subscribe(module_manager_get_mq_schema(mod_mgr), appid_topic_id, (on_msg_cb_func *)cb, args);
}
#pragma GCC diagnostic pop
-int stellar_appid_create_topic(struct stellar_module_manager *mod_mgr)
+int stellar_appid_create_topic(struct module_manager *mod_mgr)
{
- int app_topic_id=mq_schema_get_topic_id(stellar_module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC);
+ int app_topic_id=mq_schema_get_topic_id(module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC);
if(app_topic_id < 0)
{
- app_topic_id=mq_schema_create_topic(stellar_module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC, stellar_appid_on_msg_dispatch, NULL,appid_message_free, NULL);
+ app_topic_id=mq_schema_create_topic(module_manager_get_mq_schema(mod_mgr), APPID_MESSAGE_TOPIC, stellar_appid_on_msg_dispatch, NULL,appid_message_free, NULL);
}
return app_topic_id;
} \ No newline at end of file
diff --git a/decoders/lpi_plus/lpi_plus.h b/decoders/lpi_plus/lpi_plus.h
index 72844d2..cb55a5f 100644
--- a/decoders/lpi_plus/lpi_plus.h
+++ b/decoders/lpi_plus/lpi_plus.h
@@ -1,6 +1,7 @@
#pragma once
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
+#define LPI_PLUS_MODULE_NAME "LPI_PLUS"
struct lpi_plus_mapper;
-struct lpi_plus_mapper *stellar_module_get_lpip(struct stellar_module_manager *mod_mgr);
+struct lpi_plus_mapper *module_to_lpip_mapper(struct module *mod);
const char *lpi_plus_appid2name(struct lpi_plus_mapper *mapper, int appid); \ No newline at end of file
diff --git a/decoders/lpi_plus/lpip_module.c b/decoders/lpi_plus/lpip_module.c
index df0e991..5fd4aa4 100644
--- a/decoders/lpi_plus/lpip_module.c
+++ b/decoders/lpi_plus/lpip_module.c
@@ -45,7 +45,7 @@ struct lpi_plus_env
unsigned int max_pkts;
int lpip_session_exdata_idx;
int topic_appid;
- struct stellar_module_manager *mod_mgr;
+ struct module_manager *mod_mgr;
struct lpi_plus_mapper *mapper;
};
@@ -312,7 +312,7 @@ static void lpi_plus_on_session(struct session *sess, enum session_state state,
if(appid>0 && lpi_plus_appid_update(exdata->appid, &(exdata->appid_num), appid))
{
struct appid_message *msg=lpi_plus_message_new(sess, exdata->appid, exdata->appid_num);
- if(0 > mq_runtime_publish_message(stellar_module_manager_get_mq_runtime(env->mod_mgr),
+ if(0 > mq_runtime_publish_message(module_manager_get_mq_runtime(env->mod_mgr),
env->topic_appid,
msg))FREE(msg);
}
@@ -326,30 +326,30 @@ static void lpi_plus_exdata_free(int idx __unused, void *ex_ptr, void *arg __unu
FREE(ex_ptr);
}
-void lpi_plus_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod)
+void lpi_plus_exit(struct module_manager *mod_mgr, struct module *mod)
{
if(mod_mgr==NULL)return;
if(mod)
{
- struct lpi_plus_env *env=(struct lpi_plus_env *)stellar_module_get_ctx(mod);
+ struct lpi_plus_env *env=(struct lpi_plus_env *)module_get_ctx(mod);
lpi_free_library();
lpi_plus_mapper_free(env->mapper);
FREE(env);
- stellar_module_free(mod);
+ module_free(mod);
}
}
-struct stellar_module *lpi_plus_init(struct stellar_module_manager *mod_mgr)
+struct module *lpi_plus_init(struct module_manager *mod_mgr)
{
if(mod_mgr==NULL)return NULL;
struct lpi_plus_env *env=CALLOC(struct lpi_plus_env, 1);
- struct stellar_module *mod=stellar_module_new("LPI_PLUS", env);
+ struct module *mod=module_new("LPI_PLUS", env);
env->mod_mgr=mod_mgr;
env->max_pkts=16;//TODO: load from toml
-
- struct session_manager *sess_mgr=stellar_module_get_session_manager(mod_mgr);
- struct mq_schema *mq_s=stellar_module_manager_get_mq_schema(mod_mgr);
+ struct module *sess_mgr_mod=module_manager_get_module(mod_mgr, SESSION_MANAGER_MODULE_NAME);
+ struct session_manager *sess_mgr=module_to_session_manager(sess_mgr_mod);
+ struct mq_schema *mq_s=module_manager_get_mq_schema(mod_mgr);
if(sess_mgr==NULL || mq_s==NULL)
{
@@ -385,12 +385,11 @@ INIT_ERROR:
}
-struct lpi_plus_mapper *stellar_module_get_lpip(struct stellar_module_manager *mod_mgr)
+struct lpi_plus_mapper *module_to_lpip_mapper(struct module *mod)
{
- if(mod_mgr==NULL)return NULL;
- struct stellar_module *mod=stellar_module_manager_get_module(mod_mgr, "LPI_PLUS");
if(mod==NULL)return NULL;
- struct lpi_plus_env *lpi_p=(struct lpi_plus_env *)stellar_module_get_ctx(mod);
+ assert(strcmp(module_get_name(mod), LPI_PLUS_MODULE_NAME) == 0);
+ struct lpi_plus_env *lpi_p=(struct lpi_plus_env *)module_get_ctx(mod);
if(lpi_p==NULL)return NULL;
return lpi_p->mapper;
} \ No newline at end of file
diff --git a/include/stellar/appid.h b/include/stellar/appid.h
index df30a8f..d7e2506 100644
--- a/include/stellar/appid.h
+++ b/include/stellar/appid.h
@@ -9,7 +9,7 @@ extern "C"
#include <stdint.h>
#include "stellar/session.h"
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
enum APPID_ORIGIN
{
@@ -24,8 +24,8 @@ enum APPID_ORIGIN
};
typedef void on_appid_callback(struct session *sess, enum APPID_ORIGIN origin, int appid[], size_t appid_num, void *args);
-int stellar_appid_create_topic(struct stellar_module_manager *mod_mgr);
-int stellar_appid_subscribe(struct stellar_module_manager *mod_mgr, on_appid_callback *cb, void *args);
+int stellar_appid_create_topic(struct module_manager *mod_mgr);
+int stellar_appid_subscribe(struct module_manager *mod_mgr, on_appid_callback *cb, void *args);
#ifdef __cplusplus
}
diff --git a/include/stellar/module.h b/include/stellar/module.h
new file mode 100644
index 0000000..bc96b46
--- /dev/null
+++ b/include/stellar/module.h
@@ -0,0 +1,52 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "stellar/mq.h"
+#include "stellar/log.h"
+
+struct module;
+struct module *module_new(const char *name, void *ctx);
+void module_free(struct module *mod);
+
+void * module_get_ctx(struct module *mod);
+void module_set_ctx(struct module *mod, void *ctx);
+
+const char *module_get_name(struct module* mod);
+void module_set_name(struct module* mod, const char *name);
+
+struct module_manager;
+
+typedef struct module *module_on_instance_init_func(struct module_manager *mod_mgr);
+typedef void module_on_instance_exit_func(struct module_manager *mod_mgr, struct module *mod);
+
+typedef struct module *module_on_thread_init_func(struct module_manager *mod_mgr, int thread_id, struct module *mod);
+typedef void module_on_thread_exit_func(struct module_manager *mod_mgr, int thread_id, struct module *mod);
+
+struct module_manager *module_manager_new(const char *module_spec_toml_path, int max_thread_num, struct mq_schema *mq_schema, struct logger *logger);
+void module_manager_free(struct module_manager *mod_mgr);
+
+void module_manager_register_thread(struct module_manager *mod_mgr, int thread_id, struct mq_runtime *mq_rt);
+void module_manager_unregister_thread(struct module_manager *mod_mgr, int thread_id);
+
+// return -1 on error
+int module_manager_get_thread_id(struct module_manager *mod_mgr);
+struct mq_runtime *module_manager_get_mq_runtime(struct module_manager *mod_mgr);
+
+struct module *module_manager_get_module(struct module_manager *mod_mgr, const char *module_name);
+
+int module_manager_get_max_thread_num(struct module_manager *mod_mgr);
+const char *module_manager_get_toml_path(struct module_manager *mod_mgr);
+struct mq_schema *module_manager_get_mq_schema(struct module_manager *mod_mgr);
+struct logger *module_manager_get_logger(struct module_manager *mod_mgr);
+
+typedef void module_on_polling_func(struct module_manager *mod_mgr, void *polling_arg);
+int module_manager_polling_subscribe(struct module_manager *mod_mgr, module_on_polling_func on_polling, void *polling_arg);
+void module_manager_polling_active(struct module_manager *mod_mgr);
+
+#ifdef __cplusplus
+}
+#endif \ No newline at end of file
diff --git a/include/stellar/module_manager.h b/include/stellar/module_manager.h
deleted file mode 100644
index 8caf702..0000000
--- a/include/stellar/module_manager.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include "stellar/mq.h"
-#include "stellar/log.h"
-
-struct stellar_module;
-struct stellar_module *stellar_module_new(const char *name, void *ctx);
-void stellar_module_free(struct stellar_module *mod);
-
-void * stellar_module_get_ctx(struct stellar_module *mod);
-void stellar_module_set_ctx(struct stellar_module *mod, void *ctx);
-
-const char *stellar_module_get_name(struct stellar_module* mod);
-void stellar_module_set_name(struct stellar_module* mod, const char *name);
-
-struct stellar_module_manager;
-
-typedef struct stellar_module *module_on_instance_init_func(struct stellar_module_manager *mod_mgr);
-typedef void module_on_instance_exit_func(struct stellar_module_manager *mod_mgr, struct stellar_module *mod);
-
-typedef struct stellar_module *module_on_thread_init_func(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod);
-typedef void module_on_thread_exit_func(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod);
-
-struct stellar_module_manager *stellar_module_manager_new(const char *module_spec_toml_path, int max_thread_num, struct mq_schema *mq_schema, struct logger *logger);
-void stellar_module_manager_free(struct stellar_module_manager *mod_mgr);
-
-void stellar_module_manager_register_thread(struct stellar_module_manager *mod_mgr, int thread_id, struct mq_runtime *mq_rt);
-void stellar_module_manager_unregister_thread(struct stellar_module_manager *mod_mgr, int thread_id);
-
-// return -1 on error
-int stellar_module_manager_get_thread_id(struct stellar_module_manager *mod_mgr);
-struct mq_runtime *stellar_module_manager_get_mq_runtime(struct stellar_module_manager *mod_mgr);
-
-struct stellar_module *stellar_module_manager_get_module(struct stellar_module_manager *mod_mgr, const char *module_name);
-
-int stellar_module_manager_get_max_thread_num(struct stellar_module_manager *mod_mgr);
-const char *stellar_module_manager_get_toml_path(struct stellar_module_manager *mod_mgr);
-struct mq_schema *stellar_module_manager_get_mq_schema(struct stellar_module_manager *mod_mgr);
-struct logger *stellar_module_manager_get_logger(struct stellar_module_manager *mod_mgr);
-
-typedef void module_on_polling_func(struct stellar_module_manager *mod_mgr, void *polling_arg);
-int stellar_module_manager_polling_subscribe(struct stellar_module_manager *mod_mgr, module_on_polling_func on_polling, void *polling_arg);
-void stellar_module_manager_polling_active(struct stellar_module_manager *mod_mgr);
-
-#ifdef __cplusplus
-}
-#endif \ No newline at end of file
diff --git a/include/stellar/packet.h b/include/stellar/packet.h
index 413676a..9e58454 100644
--- a/include/stellar/packet.h
+++ b/include/stellar/packet.h
@@ -17,7 +17,7 @@ extern "C"
#include <linux/mpls.h>
#include "stellar/exdata.h"
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
struct packet;
/******************************************************************************
@@ -205,8 +205,9 @@ enum packet_stage
PACKET_STAGE_MAX,
};
+#define PACKET_MANAGER_MODULE_NAME "packet_manager_module"
struct packet_manager;
-struct packet_manager *stellar_module_get_packet_manager(struct stellar_module_manager *mod_mgr);
+struct packet_manager *module_to_packet_manager(struct module *mod);
int packet_manager_new_packet_exdata_index(struct packet_manager *pkt_mgr, const char *name, exdata_free *func, void *arg);
typedef void on_packet_stage_callback(struct packet *pkt, enum packet_stage stage, void *arg);
diff --git a/include/stellar/session.h b/include/stellar/session.h
index b17e2fe..40c339a 100644
--- a/include/stellar/session.h
+++ b/include/stellar/session.h
@@ -6,7 +6,7 @@ extern "C"
#endif
#include "stellar/packet.h"
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
enum session_state
{
@@ -147,8 +147,9 @@ void session_set_discard(struct session *sess);
void session_set_exdata(struct session *sess, int idx, void *ex_ptr);
void *session_get_exdata(const struct session *sess, int idx);
+#define SESSION_MANAGER_MODULE_NAME "session_manager_module"
struct session_manager;
-struct session_manager *stellar_module_get_session_manager(struct stellar_module_manager *mod_mgr);
+struct session_manager *module_to_session_manager(struct module *mod);
int session_manager_new_session_exdata_index(struct session_manager *sess_mgr, const char *name, exdata_free *func, void *arg);
// When the state is SESSION_STATE_CLOSED, the packet is NULL, and the session will be destroyed.
diff --git a/infra/module_manager/module_manager.c b/infra/module_manager/module_manager.c
index b727ebb..2574267 100644
--- a/infra/module_manager/module_manager.c
+++ b/infra/module_manager/module_manager.c
@@ -1,6 +1,5 @@
#include "module_manager_interna.h"
-#include "stellar/module_manager.h"
#include "stellar/utils.h"
#include <dlfcn.h>
#include <stdbool.h>
@@ -14,10 +13,10 @@
#include "toml/toml.h"
-struct stellar_module_manager *stellar_module_manager_new(const char *module_spec_toml_path, int max_thread_num, struct mq_schema *mq_schema, struct logger *logger)
+struct module_manager *module_manager_new(const char *module_spec_toml_path, int max_thread_num, struct mq_schema *mq_schema, struct logger *logger)
{
- struct stellar_module_manager *mod_mgr = CALLOC(struct stellar_module_manager, 1);
+ struct module_manager *mod_mgr = CALLOC(struct module_manager, 1);
mod_mgr->schema.max_thread_num=max_thread_num;
mod_mgr->schema.mq_schema=mq_schema;
mod_mgr->schema.logger=logger;
@@ -63,7 +62,7 @@ struct stellar_module_manager *stellar_module_manager_new(const char *module_spe
if (mod_mgr->module_specs[i].on_instance_init_cb)
{
mod_mgr->module_specs[i].mod = mod_mgr->module_specs[i].on_instance_init_cb(mod_mgr);
- if (stellar_module_manager_get_module(mod_mgr, mod_mgr->module_specs[i].mod->name) == NULL)
+ if (module_manager_get_module(mod_mgr, mod_mgr->module_specs[i].mod->name) == NULL)
{
mod_mgr->module_specs[i].init_succ = true;
}
@@ -122,7 +121,7 @@ MODULE_SPEC_LOAD_END:
}
-void stellar_module_manager_free(struct stellar_module_manager *mod_mgr)
+void module_manager_free(struct module_manager *mod_mgr)
{
if(mod_mgr==NULL)return;
if(mod_mgr->module_spec_toml_path)FREE(mod_mgr->module_spec_toml_path);
@@ -147,25 +146,25 @@ void stellar_module_manager_free(struct stellar_module_manager *mod_mgr)
return;
}
-int stellar_module_manager_get_max_thread_num(struct stellar_module_manager*mod_mgr)
+int module_manager_get_max_thread_num(struct module_manager*mod_mgr)
{
if(mod_mgr==NULL)return -1;
return mod_mgr->schema.max_thread_num;
}
-struct mq_schema *stellar_module_manager_get_mq_schema(struct stellar_module_manager *mod_mgr)
+struct mq_schema *module_manager_get_mq_schema(struct module_manager *mod_mgr)
{
if(mod_mgr==NULL)return NULL;
return mod_mgr->schema.mq_schema;
}
-struct logger *stellar_module_manager_get_logger(struct stellar_module_manager *mod_mgr)
+struct logger *module_manager_get_logger(struct module_manager *mod_mgr)
{
if(mod_mgr==NULL)return NULL;
return mod_mgr->schema.logger;
}
-const char *stellar_module_manager_get_toml_path(struct stellar_module_manager *mod_mgr)
+const char *module_manager_get_toml_path(struct module_manager *mod_mgr)
{
if(mod_mgr==NULL)return NULL;
return mod_mgr->module_spec_toml_path;
@@ -174,17 +173,17 @@ const char *stellar_module_manager_get_toml_path(struct stellar_module_manager *
__thread int local_thread_id=-1;
__thread struct mq_runtime *local_mq_rt=NULL;
-int stellar_module_manager_get_thread_id(struct stellar_module_manager* mod_mgr __unused)
+int module_manager_get_thread_id(struct module_manager* mod_mgr __unused)
{
return local_thread_id;
}
-struct mq_runtime *stellar_module_manager_get_mq_runtime(struct stellar_module_manager *mod_mgr __unused)
+struct mq_runtime *module_manager_get_mq_runtime(struct module_manager *mod_mgr __unused)
{
return local_mq_rt;
}
-void stellar_module_manager_register_thread(struct stellar_module_manager* mod_mgr, int thread_id, struct mq_runtime *mq_rt)
+void module_manager_register_thread(struct module_manager* mod_mgr, int thread_id, struct mq_runtime *mq_rt)
{
local_thread_id=thread_id;
local_mq_rt=mq_rt;
@@ -200,7 +199,7 @@ void stellar_module_manager_register_thread(struct stellar_module_manager* mod_m
return;
}
-void stellar_module_manager_unregister_thread(struct stellar_module_manager *mod_mgr, int thread_id)
+void module_manager_unregister_thread(struct module_manager *mod_mgr, int thread_id)
{
assert(local_thread_id==thread_id);
for(int i=0; i<mod_mgr->load_module_num; i++)
@@ -216,7 +215,7 @@ void stellar_module_manager_unregister_thread(struct stellar_module_manager *mod
return;
}
-struct stellar_module *stellar_module_manager_get_module(struct stellar_module_manager *mod_mgr, const char *module_name)
+struct module *module_manager_get_module(struct module_manager *mod_mgr, const char *module_name)
{
if(mod_mgr==NULL || module_name == NULL)return NULL;
if (mod_mgr->module_specs)
@@ -238,41 +237,41 @@ struct stellar_module *stellar_module_manager_get_module(struct stellar_module_m
*******************************************/
-struct stellar_module *stellar_module_new(const char *name, void *ctx)
+struct module *module_new(const char *name, void *ctx)
{
- struct stellar_module *mod = CALLOC(struct stellar_module, 1);
+ struct module *mod = CALLOC(struct module, 1);
memcpy(mod->name, name, MIN(NAME_MAX, strlen(name)));
mod->module_ctx=ctx;
return mod;
}
-void stellar_module_free(struct stellar_module *mod)
+void module_free(struct module *mod)
{
if(mod==NULL)return;
FREE(mod);
return;
}
-void * stellar_module_get_ctx(struct stellar_module *mod)
+void * module_get_ctx(struct module *mod)
{
if(mod==NULL)return NULL;
return mod->module_ctx;
}
-void stellar_module_set_ctx(struct stellar_module *mod, void *ctx)
+void module_set_ctx(struct module *mod, void *ctx)
{
if(mod==NULL)return;
mod->module_ctx=ctx;
return;
}
-const char *stellar_module_get_name(struct stellar_module* mod)
+const char *module_get_name(struct module* mod)
{
if(mod==NULL)return NULL;
return mod->name;
}
-void stellar_module_set_name(struct stellar_module* mod, const char *name)
+void module_set_name(struct module* mod, const char *name)
{
if(mod==NULL)return;
memcpy(mod->name, name, MIN(NAME_MAX, strlen(name)));
@@ -293,15 +292,15 @@ static void on_polling_dispatch(int topic_id __unused,
void *on_msg_cb_arg,
void *dispatch_arg)
{
- struct stellar_module_manager *mod_mgr=(struct stellar_module_manager *)dispatch_arg;
+ struct module_manager *mod_mgr=(struct module_manager *)dispatch_arg;
module_on_polling_func *polling = (module_on_polling_func *)on_msg_cb;
polling(mod_mgr, on_msg_cb_arg);
}
-int stellar_module_manager_polling_subscribe(struct stellar_module_manager *mod_mgr, module_on_polling_func on_polling, void *polling_arg)
+int module_manager_polling_subscribe(struct module_manager *mod_mgr, module_on_polling_func on_polling, void *polling_arg)
{
if(mod_mgr == NULL)return -1;
- mod_mgr->topic_polling_id=mq_schema_get_topic_id(stellar_module_manager_get_mq_schema(mod_mgr), TOPIC_POLLING);
+ mod_mgr->topic_polling_id=mq_schema_get_topic_id(module_manager_get_mq_schema(mod_mgr), TOPIC_POLLING);
if(mod_mgr->topic_polling_id<0)
{
mod_mgr->topic_polling_id=mq_schema_create_topic(mod_mgr->schema.mq_schema, TOPIC_POLLING, on_polling_dispatch, mod_mgr, NULL, NULL);
@@ -311,17 +310,17 @@ int stellar_module_manager_polling_subscribe(struct stellar_module_manager *mod_
#pragma GCC diagnostic pop
-void stellar_module_manager_polling_active(struct stellar_module_manager *mod_mgr)
+void module_manager_polling_active(struct module_manager *mod_mgr)
{
if(mod_mgr == NULL)return;
mq_runtime_publish_message(local_mq_rt, mod_mgr->topic_polling_id, NULL);
}
-void stellar_polling_dispatch(struct stellar_module_manager *mod_mgr)
+void stellar_polling_dispatch(struct module_manager *mod_mgr)
{
if(mod_mgr==NULL)return;
- stellar_module_manager_polling_active(mod_mgr);
+ module_manager_polling_active(mod_mgr);
mq_runtime_dispatch(local_mq_rt);
return;
} \ No newline at end of file
diff --git a/infra/module_manager/module_manager_interna.h b/infra/module_manager/module_manager_interna.h
index 1fe38f4..120c12a 100644
--- a/infra/module_manager/module_manager_interna.h
+++ b/infra/module_manager/module_manager_interna.h
@@ -5,7 +5,7 @@ extern "C"
{
#endif
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
#include "stellar/mq.h"
@@ -13,7 +13,7 @@ extern "C"
#include <stdbool.h>
-struct stellar_module
+struct module
{
char name[NAME_MAX];
void *module_ctx;
@@ -21,7 +21,7 @@ struct stellar_module
struct module_spec_load
{
- struct stellar_module *mod;
+ struct module *mod;
module_on_instance_init_func *on_instance_init_cb;
module_on_instance_exit_func *on_instance_exit_cb;
module_on_thread_init_func *on_thread_init_cb;
@@ -35,7 +35,7 @@ struct module_spec_load
}__attribute__((aligned(sizeof(void*))));
-struct stellar_module_manager
+struct module_manager
{
char *module_spec_toml_path;
struct module_spec_load *module_specs;
@@ -50,7 +50,7 @@ struct stellar_module_manager
}__attribute__((aligned(sizeof(void*))));
-void stellar_polling_dispatch(struct stellar_module_manager *mod_mgr);
+void stellar_polling_dispatch(struct module_manager *mod_mgr);
#ifdef __cplusplus
}
diff --git a/infra/module_manager/test/gtest_module_manager_main.cpp b/infra/module_manager/test/gtest_module_manager_main.cpp
index f32c99e..0493cc4 100644
--- a/infra/module_manager/test/gtest_module_manager_main.cpp
+++ b/infra/module_manager/test/gtest_module_manager_main.cpp
@@ -13,8 +13,8 @@
* TEST MODUEL MANAGER INTERNAL API *
***********************************/
-extern "C" struct stellar_module *gtest_mock_init(struct stellar_module_manager *mod_mgr){return NULL;}
-extern "C" void gtest_mock_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod){}
+extern "C" struct module *gtest_mock_init(struct module_manager *mod_mgr){return NULL;}
+extern "C" void gtest_mock_exit(struct module_manager *mod_mgr, struct module *mod){}
const char *gtest_mock_spec_toml =
"[[module]]\n"
"path = \"\"\n"
@@ -31,18 +31,18 @@ TEST(module_manager_internal, stellar_module_manager_new_with_toml) {
write(fd, gtest_mock_spec_toml, strlen(gtest_mock_spec_toml));
close(fd);
- struct stellar_module_manager *mod_mgr=stellar_module_manager_new(toml_template, 10, mq_schema, NULL);
+ struct module_manager *mod_mgr=module_manager_new(toml_template, 10, mq_schema, NULL);
EXPECT_TRUE(mod_mgr!=NULL);
- EXPECT_TRUE(stellar_module_manager_get_module(mod_mgr, "test")==NULL);
- EXPECT_EQ(stellar_module_manager_get_max_thread_num(mod_mgr), 10);
- EXPECT_EQ(stellar_module_manager_get_mq_schema(mod_mgr), mq_schema);
- EXPECT_STREQ(stellar_module_manager_get_toml_path(mod_mgr), toml_template);
+ EXPECT_TRUE(module_manager_get_module(mod_mgr, "test")==NULL);
+ EXPECT_EQ(module_manager_get_max_thread_num(mod_mgr), 10);
+ EXPECT_EQ(module_manager_get_mq_schema(mod_mgr), mq_schema);
+ EXPECT_STREQ(module_manager_get_toml_path(mod_mgr), toml_template);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), -1);// no thread registered
- EXPECT_TRUE(stellar_module_manager_get_mq_runtime(mod_mgr)==NULL);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), -1);// no thread registered
+ EXPECT_TRUE(module_manager_get_mq_runtime(mod_mgr)==NULL);
- stellar_module_manager_free(mod_mgr);
+ module_manager_free(mod_mgr);
unlink(toml_template);
}
@@ -53,16 +53,16 @@ TEST(module_manager_internal, stellar_module_manager_new_with_toml) {
TEST(stellar_module, basic_new_and_free) {
- struct stellar_module *mod = stellar_module_new("test", NULL);
+ struct module *mod = module_new("test", NULL);
EXPECT_TRUE(mod!=NULL);
- stellar_module_set_name(mod, "test1");
- EXPECT_STREQ(stellar_module_get_name(mod), "test1");
+ module_set_name(mod, "test1");
+ EXPECT_STREQ(module_get_name(mod), "test1");
- stellar_module_set_ctx(mod, (void*)1);
- EXPECT_EQ((long)stellar_module_get_ctx(mod), 1);
+ module_set_ctx(mod, (void*)1);
+ EXPECT_EQ((long)module_get_ctx(mod), 1);
- stellar_module_free(mod);
+ module_free(mod);
}
/***********************************
@@ -72,57 +72,57 @@ TEST(stellar_module, basic_new_and_free) {
TEST(stellar_module_manager, new_with_null_toml) {
struct mq_schema *mq_schema=NULL;
- struct stellar_module_manager *mod_mgr = stellar_module_manager_new(NULL, 10, mq_schema, NULL);
+ struct module_manager *mod_mgr = module_manager_new(NULL, 10, mq_schema, NULL);
EXPECT_TRUE(mod_mgr!=NULL);
- EXPECT_TRUE(stellar_module_manager_get_module(mod_mgr, "test")==NULL);
- EXPECT_EQ(stellar_module_manager_get_max_thread_num(mod_mgr), 10);
- EXPECT_EQ(stellar_module_manager_get_mq_schema(mod_mgr), mq_schema);
+ EXPECT_TRUE(module_manager_get_module(mod_mgr, "test")==NULL);
+ EXPECT_EQ(module_manager_get_max_thread_num(mod_mgr), 10);
+ EXPECT_EQ(module_manager_get_mq_schema(mod_mgr), mq_schema);
- EXPECT_TRUE(stellar_module_manager_get_mq_runtime(mod_mgr)==NULL);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), -1);// no thread registered
+ EXPECT_TRUE(module_manager_get_mq_runtime(mod_mgr)==NULL);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), -1);// no thread registered
- stellar_module_manager_free(mod_mgr);
+ module_manager_free(mod_mgr);
}
TEST(stellar_module_manager, new_with_empty_toml) {
struct mq_schema *mq_schema=NULL;
- struct stellar_module_manager *mod_mgr = stellar_module_manager_new("/dev/null", 10, mq_schema, NULL);
+ struct module_manager *mod_mgr = module_manager_new("/dev/null", 10, mq_schema, NULL);
EXPECT_TRUE(mod_mgr!=NULL);
- EXPECT_TRUE(stellar_module_manager_get_module(mod_mgr, "test")==NULL);
- EXPECT_EQ(stellar_module_manager_get_max_thread_num(mod_mgr), 10);
- EXPECT_EQ(stellar_module_manager_get_mq_schema(mod_mgr), mq_schema);
+ EXPECT_TRUE(module_manager_get_module(mod_mgr, "test")==NULL);
+ EXPECT_EQ(module_manager_get_max_thread_num(mod_mgr), 10);
+ EXPECT_EQ(module_manager_get_mq_schema(mod_mgr), mq_schema);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), -1);// no thread registered
- EXPECT_TRUE(stellar_module_manager_get_mq_runtime(mod_mgr)==NULL);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), -1);// no thread registered
+ EXPECT_TRUE(module_manager_get_mq_runtime(mod_mgr)==NULL);
- stellar_module_manager_free(mod_mgr);
+ module_manager_free(mod_mgr);
}
TEST(stellar_module_manager, register_thread) {
struct mq_schema *mq_schema=(struct mq_schema*)1;
- struct stellar_module_manager *mod_mgr=stellar_module_manager_new(NULL, 10, mq_schema, NULL);
+ struct module_manager *mod_mgr=module_manager_new(NULL, 10, mq_schema, NULL);
EXPECT_TRUE(mod_mgr!=NULL);
- EXPECT_EQ((long)stellar_module_manager_get_mq_schema(mod_mgr), 1);
+ EXPECT_EQ((long)module_manager_get_mq_schema(mod_mgr), 1);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), -1);// no thread registered
- EXPECT_TRUE(stellar_module_manager_get_mq_runtime(mod_mgr)==NULL);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), -1);// no thread registered
+ EXPECT_TRUE(module_manager_get_mq_runtime(mod_mgr)==NULL);
struct mq_runtime *mq_rt = (struct mq_runtime*)2;
- stellar_module_manager_register_thread(mod_mgr, 1, mq_rt);
+ module_manager_register_thread(mod_mgr, 1, mq_rt);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), 1);
- EXPECT_EQ((long)stellar_module_manager_get_mq_runtime(mod_mgr), 2);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), 1);
+ EXPECT_EQ((long)module_manager_get_mq_runtime(mod_mgr), 2);
- stellar_module_manager_unregister_thread(mod_mgr, 1);
+ module_manager_unregister_thread(mod_mgr, 1);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), -1);
- EXPECT_EQ((long)stellar_module_manager_get_mq_runtime(mod_mgr), 0);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), -1);
+ EXPECT_EQ((long)module_manager_get_mq_runtime(mod_mgr), 0);
- stellar_module_manager_free(mod_mgr);
+ module_manager_free(mod_mgr);
}
@@ -130,38 +130,38 @@ TEST(stellar_module_manager, register_thread) {
* TEST MODULE MANAGER API *
***********************************/
-extern "C" struct stellar_module *gtest_module_init(struct stellar_module_manager *mod_mgr)
+extern "C" struct module *gtest_module_init(struct module_manager *mod_mgr)
{
- struct stellar_module *mod = stellar_module_new("gtest", NULL);
- EXPECT_STREQ(stellar_module_get_name(mod), "gtest");
- stellar_module_set_ctx(mod, (void*)1);
+ struct module *mod = module_new("gtest", NULL);
+ EXPECT_STREQ(module_get_name(mod), "gtest");
+ module_set_ctx(mod, (void*)1);
return mod;
}
-extern "C" void gtest_module_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod)
+extern "C" void gtest_module_exit(struct module_manager *mod_mgr, struct module *mod)
{
- EXPECT_STREQ(stellar_module_get_name(mod), "gtest");
- EXPECT_EQ((long)stellar_module_get_ctx(mod), 1);
+ EXPECT_STREQ(module_get_name(mod), "gtest");
+ EXPECT_EQ((long)module_get_ctx(mod), 1);
- EXPECT_EQ(stellar_module_manager_get_module(mod_mgr, "gtest"), mod);
+ EXPECT_EQ(module_manager_get_module(mod_mgr, "gtest"), mod);
- EXPECT_EQ(stellar_module_manager_get_thread_id(mod_mgr), -1);
- EXPECT_EQ((long)stellar_module_manager_get_mq_runtime(mod_mgr), 0);
+ EXPECT_EQ(module_manager_get_thread_id(mod_mgr), -1);
+ EXPECT_EQ((long)module_manager_get_mq_runtime(mod_mgr), 0);
- stellar_module_free(mod);
+ module_free(mod);
}
-extern "C" void gtest_thread_init(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod)
+extern "C" void gtest_thread_init(struct module_manager *mod_mgr, int thread_id, struct module *mod)
{
- EXPECT_STREQ(stellar_module_get_name(mod), "gtest");
- EXPECT_EQ((long)stellar_module_get_ctx(mod), 1);
+ EXPECT_STREQ(module_get_name(mod), "gtest");
+ EXPECT_EQ((long)module_get_ctx(mod), 1);
}
-extern "C" void gtest_thread_exit(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod)
+extern "C" void gtest_thread_exit(struct module_manager *mod_mgr, int thread_id, struct module *mod)
{
- EXPECT_STREQ(stellar_module_get_name(mod), "gtest");
- EXPECT_EQ((long)stellar_module_get_ctx(mod), 1);
+ EXPECT_STREQ(module_get_name(mod), "gtest");
+ EXPECT_EQ((long)module_get_ctx(mod), 1);
}
const char *gtest_module_spec_toml =
@@ -182,26 +182,26 @@ TEST(module_manager, basic_module) {
write(fd, gtest_module_spec_toml, strlen(gtest_module_spec_toml));
close(fd);
- struct stellar_module_manager *mod_mgr=stellar_module_manager_new(toml_template, 10, mq_schema, NULL);
+ struct module_manager *mod_mgr=module_manager_new(toml_template, 10, mq_schema, NULL);
EXPECT_TRUE(mod_mgr!=NULL);
- EXPECT_TRUE(stellar_module_manager_get_module(mod_mgr, "gtest")!=NULL);
+ EXPECT_TRUE(module_manager_get_module(mod_mgr, "gtest")!=NULL);
- EXPECT_EQ(stellar_module_manager_get_max_thread_num(mod_mgr), 10);
- EXPECT_EQ((long)stellar_module_manager_get_mq_schema(mod_mgr), 1);
- EXPECT_STREQ(stellar_module_manager_get_toml_path(mod_mgr), toml_template);
+ EXPECT_EQ(module_manager_get_max_thread_num(mod_mgr), 10);
+ EXPECT_EQ((long)module_manager_get_mq_schema(mod_mgr), 1);
+ EXPECT_STREQ(module_manager_get_toml_path(mod_mgr), toml_template);
struct mq_runtime *mq_rt = (struct mq_runtime*)2;
- stellar_module_manager_register_thread(mod_mgr, 1, mq_rt);
+ module_manager_register_thread(mod_mgr, 1, mq_rt);
- EXPECT_EQ((long)stellar_module_manager_get_thread_id(mod_mgr), 1);
- EXPECT_EQ((long)stellar_module_manager_get_mq_runtime(mod_mgr), 2);
+ EXPECT_EQ((long)module_manager_get_thread_id(mod_mgr), 1);
+ EXPECT_EQ((long)module_manager_get_mq_runtime(mod_mgr), 2);
- stellar_module_manager_unregister_thread(mod_mgr, 1);
- EXPECT_EQ((long)stellar_module_manager_get_thread_id(mod_mgr), -1);
- EXPECT_EQ((long)stellar_module_manager_get_mq_runtime(mod_mgr), 0);
+ module_manager_unregister_thread(mod_mgr, 1);
+ EXPECT_EQ((long)module_manager_get_thread_id(mod_mgr), -1);
+ EXPECT_EQ((long)module_manager_get_mq_runtime(mod_mgr), 0);
- stellar_module_manager_free(mod_mgr);
+ module_manager_free(mod_mgr);
unlink(toml_template);
}
@@ -216,13 +216,13 @@ struct test_module_polling_env
int polling_active_count;
};
- void test_module_on_polling(struct stellar_module_manager* mod_mgr, void *polling_arg)
+ void test_module_on_polling(struct module_manager* mod_mgr, void *polling_arg)
{
struct test_module_polling_env *env = (struct test_module_polling_env*)polling_arg;
env->polling_count++;
if(env->polling_count%2==0)
{
- stellar_module_manager_polling_active(mod_mgr);
+ module_manager_polling_active(mod_mgr);
env->polling_active_count++;
}
}
@@ -232,34 +232,34 @@ TEST(module_manager, basic_polling_module) {
struct mq_schema *mq_schema=mq_schema_new();
- struct stellar_module_manager *mod_mgr=stellar_module_manager_new(NULL, 10, mq_schema, NULL);
+ struct module_manager *mod_mgr=module_manager_new(NULL, 10, mq_schema, NULL);
EXPECT_TRUE(mod_mgr!=NULL);
- EXPECT_EQ(stellar_module_manager_get_max_thread_num(mod_mgr), 10);
- EXPECT_EQ(stellar_module_manager_get_mq_schema(mod_mgr), mq_schema);
+ EXPECT_EQ(module_manager_get_max_thread_num(mod_mgr), 10);
+ EXPECT_EQ(module_manager_get_mq_schema(mod_mgr), mq_schema);
struct test_module_polling_env env={};
env.N_round=10;
- stellar_module_manager_polling_subscribe(mod_mgr, test_module_on_polling, &env);
+ module_manager_polling_subscribe(mod_mgr, test_module_on_polling, &env);
struct mq_runtime *mq_rt = mq_runtime_new(mq_schema);
- stellar_module_manager_register_thread(mod_mgr, 1, mq_rt);
+ module_manager_register_thread(mod_mgr, 1, mq_rt);
- EXPECT_EQ((long)stellar_module_manager_get_thread_id(mod_mgr), 1);
- EXPECT_EQ(stellar_module_manager_get_mq_runtime(mod_mgr), mq_rt);
+ EXPECT_EQ((long)module_manager_get_thread_id(mod_mgr), 1);
+ EXPECT_EQ(module_manager_get_mq_runtime(mod_mgr), mq_rt);
for(int i=0; i<env.N_round; i++)
{
stellar_polling_dispatch(mod_mgr);
}
- stellar_module_manager_unregister_thread(mod_mgr, 1);
+ module_manager_unregister_thread(mod_mgr, 1);
mq_runtime_free(mq_rt);
mq_schema_free(mq_schema);
- stellar_module_manager_free(mod_mgr);
+ module_manager_free(mod_mgr);
EXPECT_EQ(env.polling_count, env.N_round+env.polling_active_count);
diff --git a/infra/packet_manager/packet_manager.c b/infra/packet_manager/packet_manager.c
index f132536..0238ec0 100644
--- a/infra/packet_manager/packet_manager.c
+++ b/infra/packet_manager/packet_manager.c
@@ -5,7 +5,7 @@
#include "packet_manager.h"
#include "fieldstat/fieldstat_easy.h"
-#define PACKET_MANAGER_MODULE_NAME "packet_manager_module"
+
#define PACKET_MANAGER_LOG_ERROR(format, ...) STELLAR_LOG_ERROR(__thread_local_logger, "packet manager", format, ##__VA_ARGS__)
#define PACKET_MANAGER_LOG_FATAL(format, ...) STELLAR_LOG_FATAL(__thread_local_logger, "packet manager", format, ##__VA_ARGS__)
@@ -436,10 +436,10 @@ void packet_manager_print_stat(struct packet_manager *pkt_mgr, uint16_t thread_i
* packet manager module
******************************************************************************/
-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();
- int thread_id = stellar_module_manager_get_thread_id(mod_mgr);
+ int thread_id = module_manager_get_thread_id(mod_mgr);
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
static __thread uint64_t last_sync_stat_ms = 0;
@@ -457,61 +457,57 @@ static void on_polling(struct stellar_module_manager *mod_mgr, void *args)
}
}
-struct packet_manager *stellar_module_get_packet_manager(struct stellar_module_manager *mod_mgr)
+struct packet_manager *module_to_packet_manager(struct module *mod)
{
- assert(mod_mgr);
- struct stellar_module *pkt_mgr_mod = stellar_module_manager_get_module(mod_mgr, PACKET_MANAGER_MODULE_NAME);
- if (pkt_mgr_mod == NULL)
- {
- return NULL;
- }
- return (struct packet_manager *)stellar_module_get_ctx(pkt_mgr_mod);
+ assert(mod);
+ assert(strcmp(module_get_name(mod), PACKET_MANAGER_MODULE_NAME) == 0);
+ return (struct packet_manager *)module_get_ctx(mod);
}
-struct stellar_module *packet_manager_on_init(struct stellar_module_manager *mod_mgr)
+struct module *packet_manager_on_init(struct module_manager *mod_mgr)
{
assert(mod_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);
- uint16_t thread_num = stellar_module_manager_get_max_thread_num(mod_mgr);
+ uint16_t thread_num = module_manager_get_max_thread_num(mod_mgr);
struct packet_manager *pkt_mgr = packet_manager_new(mq_sche, thread_num);
if (pkt_mgr == NULL)
{
return NULL;
}
- stellar_module_manager_polling_subscribe(mod_mgr, on_polling, pkt_mgr);
+ module_manager_polling_subscribe(mod_mgr, on_polling, pkt_mgr);
- struct stellar_module *pkt_mgr_mod = stellar_module_new(PACKET_MANAGER_MODULE_NAME, NULL);
+ struct module *pkt_mgr_mod = module_new(PACKET_MANAGER_MODULE_NAME, NULL);
if (pkt_mgr_mod == NULL)
{
PACKET_MANAGER_LOG_ERROR("failed to create packet_manager");
packet_manager_free(pkt_mgr);
return NULL;
}
- stellar_module_set_ctx(pkt_mgr_mod, pkt_mgr);
+ module_set_ctx(pkt_mgr_mod, pkt_mgr);
PACKET_MANAGER_LOG_FATAL("packet_manager init");
return pkt_mgr_mod;
}
-void packet_manager_on_exit(struct stellar_module_manager *mod_mgr __attribute__((unused)), struct stellar_module *mod)
+void packet_manager_on_exit(struct module_manager *mod_mgr __attribute__((unused)), struct module *mod)
{
if (mod)
{
- struct packet_manager *pkt_mgr = stellar_module_get_ctx(mod);
+ struct packet_manager *pkt_mgr = module_get_ctx(mod);
packet_manager_free(pkt_mgr);
- stellar_module_free(mod);
+ module_free(mod);
PACKET_MANAGER_LOG_FATAL("packet_manager exit");
}
}
-struct stellar_module *packet_manager_on_thread_init(struct stellar_module_manager *mod_mgr, int thread_id, struct stellar_module *mod)
+struct module *packet_manager_on_thread_init(struct module_manager *mod_mgr, int thread_id, struct module *mod)
{
- struct packet_manager *pkt_mgr = stellar_module_get_ctx(mod);
+ struct packet_manager *pkt_mgr = module_get_ctx(mod);
assert(pkt_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);
assert(thread_id < pkt_mgr->thread_num);
@@ -526,9 +522,9 @@ struct stellar_module *packet_manager_on_thread_init(struct stellar_module_manag
}
}
-void packet_manager_on_thread_exit(struct stellar_module_manager *mod_mgr __attribute__((unused)), int thread_id, struct stellar_module *mod)
+void packet_manager_on_thread_exit(struct module_manager *mod_mgr __attribute__((unused)), int thread_id, struct module *mod)
{
- struct packet_manager *pkt_mgr = stellar_module_get_ctx(mod);
+ struct packet_manager *pkt_mgr = module_get_ctx(mod);
assert(pkt_mgr);
assert(thread_id < pkt_mgr->thread_num);
diff --git a/infra/session_manager/session_manager.c b/infra/session_manager/session_manager.c
index baa5329..d2f99cf 100644
--- a/infra/session_manager/session_manager.c
+++ b/infra/session_manager/session_manager.c
@@ -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);
} \ No newline at end of file
diff --git a/infra/stellar_core.c b/infra/stellar_core.c
index e072c4f..cbab9f5 100644
--- a/infra/stellar_core.c
+++ b/infra/stellar_core.c
@@ -3,7 +3,7 @@
#include <sys/prctl.h>
#include "stellar/stellar.h"
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
#include "packet_io.h"
#include "log_internal.h"
@@ -37,7 +37,7 @@ struct stellar
struct logger *logger;
struct packet_io *pkt_io;
struct mq_schema *mq_schema;
- struct stellar_module_manager *mod_mgr;
+ struct module_manager *mod_mgr;
struct thread threads[MAX_THREAD_NUM];
};
@@ -51,15 +51,16 @@ static void *worker_thread(void *arg)
uint16_t thread_id = thread->idx;
struct stellar *st = thread->st;
struct packet_io *pkt_io = st->pkt_io;
- struct stellar_module_manager *mod_mgr = st->mod_mgr;
+ struct module_manager *mod_mgr = st->mod_mgr;
struct mq_runtime *mq_rt = mq_runtime_new(st->mq_schema);
- 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);
snprintf(thread_name, sizeof(thread_name), "stellar:%d", thread_id);
prctl(PR_SET_NAME, (unsigned long long)thread_name, NULL, NULL, NULL);
__thread_local_logger = st->logger;
- stellar_module_manager_register_thread(mod_mgr, thread_id, mq_rt);
+ module_manager_register_thread(mod_mgr, thread_id, mq_rt);
ATOMIC_SET(&thread->is_runing, 1);
CORE_LOG_FATAL("worker thread %d runing", thread_id);
@@ -94,7 +95,7 @@ static void *worker_thread(void *arg)
}
}
- stellar_module_manager_unregister_thread(mod_mgr, thread_id);
+ module_manager_unregister_thread(mod_mgr, thread_id);
mq_runtime_free(mq_rt);
ATOMIC_SET(&thread->is_runing, 0);
@@ -172,7 +173,7 @@ struct stellar *stellar_new(const char *toml_file)
goto error_out;
}
- st->mod_mgr = stellar_module_manager_new(toml_file, st->thread_num, st->mq_schema, st->logger);
+ st->mod_mgr = module_manager_new(toml_file, st->thread_num, st->mq_schema, st->logger);
if (st->mod_mgr == NULL)
{
CORE_LOG_ERROR("unable to create packet manager");
@@ -227,7 +228,7 @@ void stellar_free(struct stellar *st)
if (st)
{
packet_io_free(st->pkt_io);
- stellar_module_manager_free(st->mod_mgr);
+ module_manager_free(st->mod_mgr);
mq_schema_free(st->mq_schema);
CORE_LOG_FATAL("stellar exit\n");
diff --git a/infra/version.map b/infra/version.map
index 92ccb9e..cf18ade 100644
--- a/infra/version.map
+++ b/infra/version.map
@@ -52,7 +52,7 @@ global:
exdata_*;
mq_*;
- stellar_module_*;
+ module_*;
stellar_new;
stellar_run;
diff --git a/test/lpi_plus/gtest_lpip_module.c b/test/lpi_plus/gtest_lpip_module.c
index 5897108..854c270 100644
--- a/test/lpi_plus/gtest_lpip_module.c
+++ b/test/lpi_plus/gtest_lpip_module.c
@@ -7,7 +7,7 @@
#include <assert.h>
#include "stellar/appid.h"
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
#include "stellar/session.h"
#include "stellar/utils.h"
@@ -18,7 +18,7 @@
struct test_lpip_env
{
- struct stellar_module_manager *mod_mgr;
+ struct module_manager *mod_mgr;
struct lpi_plus_mapper *lpi_mapper;
int l7_exdata_idx;
int session_num;
@@ -152,12 +152,13 @@ static void on_session(struct session *sess, enum session_state state, struct pa
return;
}
-struct stellar_module *gtest_lpip_module_init(struct stellar_module_manager *mod_mgr)
+struct module *gtest_lpip_module_init(struct module_manager *mod_mgr)
{
struct test_lpip_env *env = (struct test_lpip_env *)calloc(1, sizeof(struct test_lpip_env));
-
- env->lpi_mapper=stellar_module_get_lpip(mod_mgr);
- struct session_manager *sess_mgr = stellar_module_get_session_manager(mod_mgr);
+ struct module *lpip_mod = module_manager_get_module(mod_mgr, LPI_PLUS_MODULE_NAME);
+ env->lpi_mapper=module_to_lpip_mapper(lpip_mod);
+ struct module *sess_mgr_mod=module_manager_get_module(mod_mgr, SESSION_MANAGER_MODULE_NAME);
+ struct session_manager *sess_mgr = module_to_session_manager(sess_mgr_mod);
if(sess_mgr == NULL)
{
perror("gtest_lpi_plugin_load:stellar_module_get_session_manager failed !!!\n");
@@ -172,15 +173,15 @@ struct stellar_module *gtest_lpip_module_init(struct stellar_module_manager *mod
stellar_appid_subscribe(mod_mgr, gtest_lpip_on_appid_msg, env);
printf("gtest_lpip_module_init OK!\n");
- return stellar_module_new("TEST_LPIP", env);
+ return module_new("TEST_LPIP", env);
}
-void gtest_lpip_module_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod)
+void gtest_lpip_module_exit(struct module_manager *mod_mgr, struct module *mod)
{
assert(mod_mgr!=NULL);
- struct test_lpip_env *env = (struct test_lpip_env *)stellar_module_get_ctx(mod);
+ struct test_lpip_env *env = (struct test_lpip_env *)module_get_ctx(mod);
free(env);
printf("gtest_lpip_module_exit OK!\n");
- stellar_module_free(mod);
+ module_free(mod);
return ;
}
diff --git a/test/session_debugger/session_debugger.c b/test/session_debugger/session_debugger.c
index cb9c833..cad4316 100644
--- a/test/session_debugger/session_debugger.c
+++ b/test/session_debugger/session_debugger.c
@@ -11,7 +11,7 @@
#include "session_internal.h"
#include "stellar/log.h"
-#include "stellar/module_manager.h"
+#include "stellar/module.h"
#include "stellar/session.h"
#pragma GCC diagnostic ignored "-Wunused-parameter"
@@ -431,13 +431,13 @@ error_out:
* Plugin API
******************************************************************************/
-struct stellar_module *session_debugger_on_init(struct stellar_module_manager *mod_mgr)
+struct module *session_debugger_on_init(struct module_manager *mod_mgr)
{
assert(mod_mgr);
-
- struct session_manager *sess_mgr = stellar_module_get_session_manager(mod_mgr);
+ struct module *sess_mgr_mod=module_manager_get_module(mod_mgr, SESSION_MANAGER_MODULE_NAME);
+ struct session_manager *sess_mgr = module_to_session_manager(sess_mgr_mod);
assert(sess_mgr);
- struct logger *logger = stellar_module_manager_get_logger(mod_mgr);
+ struct logger *logger = module_manager_get_logger(mod_mgr);
assert(logger);
struct session_debugger *dbg = session_debugger_new(sess_mgr, logger);
@@ -446,29 +446,29 @@ struct stellar_module *session_debugger_on_init(struct stellar_module_manager *m
return NULL;
}
- struct stellar_module *dbg_mod = stellar_module_new("session_debugger", NULL);
+ struct module *dbg_mod = module_new("session_debugger", NULL);
if (dbg_mod == NULL)
{
session_debugger_free(dbg);
return NULL;
}
- stellar_module_set_ctx(dbg_mod, dbg);
+ module_set_ctx(dbg_mod, dbg);
STELLAR_LOG_FATAL(dbg->logger, "session debugger", "session_debugger init")
return dbg_mod;
}
-void session_debugger_on_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod)
+void session_debugger_on_exit(struct module_manager *mod_mgr, struct module *mod)
{
if (mod)
{
- struct session_debugger *dbg = stellar_module_get_ctx(mod);
+ struct session_debugger *dbg = module_get_ctx(mod);
if (dbg)
{
STELLAR_LOG_FATAL(dbg->logger, "session debugger", "session_debugger exit")
session_debugger_free(dbg);
}
- stellar_module_free(mod);
+ module_free(mod);
}
} \ No newline at end of file