diff options
Diffstat (limited to 'src/lua_module_manage.c')
| -rw-r--r-- | src/lua_module_manage.c | 50 |
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 |
