summaryrefslogtreecommitdiff
path: root/src/lua_module_manage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua_module_manage.c')
-rw-r--r--src/lua_module_manage.c50
1 files changed, 27 insertions, 23 deletions
diff --git a/src/lua_module_manage.c b/src/lua_module_manage.c
index 08baeb2..35848a9 100644
--- a/src/lua_module_manage.c
+++ b/src/lua_module_manage.c
@@ -3,19 +3,26 @@
#include "stellar/utils.h"
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#define MQ_SCHEMA_SPACE_NAME "mq_schema"
-#define MQ_RUNTIME_SPACE_NAME "mq_runtime"
-#define MODULE_MANAGER_SPACE_NAME "module_manager"
-#define PACKET_SPACE_NAME "packet"
-#define PACKET_MANAGER_SPACE_NAME "packet_manager"
-#define SESSION_SPACE_NAME "session"
-#define SESSION_MANAGER_SPACE_NAME "session_manager"
+#define GLOBAL_BASIC_SPACE_NAME "lua_module_manager_space"
+#define MQ_SCHEMA_SPACE_NAME "mq_schema_space"
+#define MQ_RUNTIME_SPACE_NAME "mq_runtime_space"
+#define MODULE_MANAGER_SPACE_NAME "stellar_module_manager_space"
+#define PACKET_SPACE_NAME "packet_space"
+#define PACKET_MANAGER_SPACE_NAME "packet_manager_space"
+#define SESSION_SPACE_NAME "session_space"
+#define SESSION_MANAGER_SPACE_NAME "session_manager_space"
struct lua_state_cbind_func_spec lua_bind_function[] = {
+ {lua_get_lua_module_manager, GLOBAL_BASIC_SPACE_NAME, "get_lua_module_manager"},
+ {lua_get_stellar_module_manager, GLOBAL_BASIC_SPACE_NAME, "get_stellar_module_manager"},
+ {lua_get_mq_schema, GLOBAL_BASIC_SPACE_NAME, "get_mq_schema"},
+ {lua_get_mq_runtime, GLOBAL_BASIC_SPACE_NAME, "get_mq_runtime"},
+ {lua_get_logger, GLOBAL_BASIC_SPACE_NAME, "get_logger"},
+ {lua_get_packet_manager, GLOBAL_BASIC_SPACE_NAME, "get_pacekt_manager"},
+ {lua_get_session_manager, GLOBAL_BASIC_SPACE_NAME, "get_session_manager"},
+ {lua_get_current_thread_id, GLOBAL_BASIC_SPACE_NAME, "get_current_thread_id"},
+ {lua_get_max_thread_num, GLOBAL_BASIC_SPACE_NAME, "get_max_thread_num"},
+
{lua_mq_schema_get_topic_id, MQ_SCHEMA_SPACE_NAME, "get_topic_id"},
{lua_mq_schema_create_topic, MQ_SCHEMA_SPACE_NAME, "create_topic"},
{lua_mq_schema_update_topic, MQ_SCHEMA_SPACE_NAME, "update_topic"},
@@ -23,12 +30,6 @@ struct lua_state_cbind_func_spec lua_bind_function[] = {
{lua_mq_schema_subscribe, MQ_SCHEMA_SPACE_NAME, "subcribe"},
{lua_mq_runtime_publish_message, MQ_RUNTIME_SPACE_NAME, "publish_message"},
- {lua_stellar_get_thread_id, MODULE_MANAGER_SPACE_NAME, "get_thread_id"},
- {lua_stellar_get_max_thread_num, MODULE_MANAGER_SPACE_NAME, "get_max_thread_num"},
- {lua_stellar_get_mq_runtime, MODULE_MANAGER_SPACE_NAME, "get_mq_runtime"},
- {lua_stellar_get_mq_schema, MODULE_MANAGER_SPACE_NAME, "get_mq_schema"},
- {lua_stellar_get_logger, MODULE_MANAGER_SPACE_NAME, "get_logger"},
-
{lua_packet_get_direction, PACKET_SPACE_NAME, "get_direction"},
{lua_packet_get_payload, PACKET_SPACE_NAME, "get_payload"},
{lua_packet_get_payload_len, PACKET_SPACE_NAME, "get_payload_len"},
@@ -65,16 +66,16 @@ struct stellar_module *lua_module_manager_on_init(struct stellar_module_manager
lua_bind_data,
sizeof(lua_bind_data) / sizeof(struct lua_state_cbind_data_spec)))
goto err;
-
+
if (lua_module_manager_load_config(new_lua_mod_mgr, LUA_MODULE_MANAGE_CONF_PATH))
goto err;
if (lua_module_manager_call_init(new_lua_mod_mgr))
goto err;
-
+
if (lua_module_manager_duplicate_state(new_lua_mod_mgr))
goto err;
-
+
struct stellar_module *module = stellar_module_new(LUA_MODULE_MANAGE_MODULE_NAME, (void *)new_lua_mod_mgr);
return module;
err:
@@ -84,8 +85,11 @@ err:
void lua_module_manager_on_exit(struct stellar_module_manager *mod_mgr __unused, struct stellar_module *mod)
{
- struct lua_module_manager *lua_mod_mgr = (struct lua_module_manager *)stellar_module_get_ctx(mod);
- lua_module_manager_free(lua_mod_mgr);
- stellar_module_free(mod);
+ if (mod)
+ {
+ struct lua_module_manager *lua_mod_mgr = (struct lua_module_manager *)stellar_module_get_ctx(mod);
+ lua_module_manager_free(lua_mod_mgr);
+ stellar_module_free(mod);
+ }
return;
} \ No newline at end of file