diff options
Diffstat (limited to 'src/lua_module_manage_internal.h')
| -rw-r--r-- | src/lua_module_manage_internal.h | 80 |
1 files changed, 36 insertions, 44 deletions
diff --git a/src/lua_module_manage_internal.h b/src/lua_module_manage_internal.h index 93c3426..a758b2b 100644 --- a/src/lua_module_manage_internal.h +++ b/src/lua_module_manage_internal.h @@ -7,12 +7,19 @@ extern "C" #include <stddef.h> #include "lua_module_manage.h" +#include "stellar/mq.h" +#include "stellar/module_manager.h" +#include "stellar/packet.h" +#include "stellar/packet_manager.h" +#include "stellar/session.h" +#include "stellar/session_manager.h" enum LUA_MODULE_ERR_CODE { /* 函数与全局变量操作错误码 */ CDATA_ERR = -300, CDATA_SET_VALUE_TYPE_UNSUPPORT, /* 使用了未识别的数据类型 */ + CDATA_SET_VALUE_NULL_POINTER, CDATA_PUSH_STACK_TYPE_UNKNOWN, /* 入栈数据无法识别数据类型 */ CDATA_POP_STACK_TYPE_UNSUPPORT, /* 出栈数据类型不支持出栈 */ /* 状态机基础操作中错误码 */ @@ -30,18 +37,13 @@ extern "C" STATE_CHUNK_RUNNING_ERR, /* CHUNK在调用pcall执行过程中运行错误 */ /* lua module manager错误码 */ LUA_MOD_MGR_ERR = -100, - LMM_STATE_THREAD_NUM_ERR, - LMM_STATE_CREATE_ERR, - LMM_LOAD_CONFIG_FILE_NOT_EXIST, - LMM_LOAD_CONFIG_FILE_OPEN_ERR, - LMM_LOAD_CONFIG_FILE_TOML_PARSE_ERR, - LMM_LOAD_SCRIPT_FILE_OPEN_ERR, - LMM_LOAD_SCRIPT_FUNC_TYPE_ERR, - - LMM_CALL_INIT_FILE_OPEN_ERR, - LMM_CALL_INIT_FUNCTION_TYPE_ERR, - LMM_CALL_EXIT_FILE_OPEN_ERR, - LMM_CALL_EXIT_FUNCTION_TYPE_ERR, + LMM_STATE_THREAD_NUM_ERR, /* 获取最大线程数量时结果为负数 */ + LMM_STATE_CREATE_ERR, /* lua_State创建失败 */ + LMM_LOAD_CONFIG_FILE_NOT_EXIST, /* 读取配置时配置文件不存在 */ + LMM_LOAD_CONFIG_FILE_OPEN_ERR, /* 配置文件无法打开 */ + LMM_LOAD_CONFIG_FILE_TOML_PARSE_ERR, /* 配置文件通过toml解析失败 */ + LMM_LOAD_SCRIPT_FILE_OPEN_ERR, /* 加载配置过程中lua无法打开文件 */ + LMM_LOAD_SCRIPT_FUNC_TYPE_ERR, /* lua获取得到的变量类型不是函数,无法完成初始化 */ /* 通用返回值 */ PARAM_ERR = -1, /* 传入参数错误, 可能是指针为空或类型不符合 */ SUCCESS = 0, /* 运行成功 */ @@ -77,33 +79,26 @@ extern "C" DATATYPE_END }; - struct lua_ctable; - struct lua_cdata - { - enum LUA_DATATYPE type; - size_t data_len; /* 只有在类型为buff或function时使用此标识 */ - union - { - int bool; - int integer; - double number; - char *string; - - char *buff; - int table; - void *pointer; - struct lua_context *context; - void *function; - struct lua_ctable *ctable; - }; - }; + struct lua_cdata; struct lua_cdata *lua_cdata_new(void); void lua_cdata_free(struct lua_cdata *cdata); + struct lua_cdata *lua_cdata_array_new(size_t cdata_num); + void lua_cdata_array_free(struct lua_cdata *cdata_array, size_t data_num); + struct lua_cdata *lua_cdata_array_get_index(struct lua_cdata *data_array, size_t index); int lua_cdata_data_set(struct lua_cdata *cdata, enum LUA_DATATYPE type, void *value_p, int value_i); int lua_cdata_push_stack(struct lua_state *state, struct lua_cdata *cdata); int lua_cdata_pop_stack(struct lua_state *state, struct lua_cdata *cdata); /* ***** ***** ***** ***** ***** ***** */ + struct lua_fn_arg_pair; + struct lua_fn_arg_pair *lua_fn_arg_pair_new(struct lua_module_manager *lua_mod_mgr, int fn_ref_id, int arg_ref_id); + void lua_fn_arg_pair_free(struct lua_fn_arg_pair *pair); + void lua_fn_arg_pair_insert(struct lua_fn_arg_pair *pair); + int lua_fn_arg_pair_get_fn_ref_id(struct lua_fn_arg_pair *pair); + int lua_fn_arg_pair_get_arg_ref_id(struct lua_fn_arg_pair *pair); + struct lua_module_manager *lua_fn_arg_pair_get_lua_mod_mgr(struct lua_fn_arg_pair *pair); + + /* ***** ***** ***** ***** ***** ***** */ typedef int (*lua_cbind_func)(struct lua_state *state); struct lua_state_cbind_func_spec { @@ -123,21 +118,11 @@ extern "C" /* ***** ***** ***** ***** ***** ***** */ struct lua_state *lua_state_new(struct lua_module_manager *lua_mod_mgr); void lua_state_free(struct lua_state *state); - struct lua_module_manager *lua_state_get_lua_module_manager(struct lua_state *state); - void *lua_state_get_lua_State(struct lua_state *state); int lua_state_cbinding_function(struct lua_state *state, struct lua_state_cbind_func_spec *bind_func_array, size_t bind_func_num); int lua_state_cbinding_data(struct lua_state *state, struct lua_state_cbind_data_spec *bind_data_array, size_t bind_data_num); int lua_state_copy_ref_value(struct lua_state *to, struct lua_state *from); int lua_state_execute_chunk(struct lua_state *state, int chunk_ref_id, struct lua_cdata *param_array, size_t param_num, struct lua_cdata *return_array, size_t return_num, char *err_log, size_t err_log_len); - - /* ***** ***** ***** ***** ***** ***** */ - struct lua_fn_arg_pair; - struct lua_fn_arg_pair *lua_fn_arg_pair_new(struct lua_module_manager *lua_mod_mgr, int fn_ref_id, int arg_ref_id); - void lua_fn_arg_pair_free(struct lua_fn_arg_pair *pair); - void lua_fn_arg_pair_insert(struct lua_fn_arg_pair *pair); - int lua_fn_arg_pair_get_fn_ref_id(struct lua_fn_arg_pair *pair); - int lua_fn_arg_pair_get_arg_ref_id(struct lua_fn_arg_pair *pair); - struct lua_module_manager *lua_fn_arg_pair_get_lua_mod_mgr(struct lua_fn_arg_pair *pair); + struct lua_module_manager *lua_state_get_lua_module_manager(struct lua_state *state); /* ***** ***** ***** ***** ***** ***** */ struct lua_module_manager *lua_module_manager_new(struct stellar_module_manager *mod_mgr); @@ -148,8 +133,15 @@ extern "C" int lua_module_manager_duplicate_state(struct lua_module_manager *lua_mod_mgr); void lua_module_manger_pair_list_insert(struct lua_module_manager *lua_mod_mgr, struct lua_fn_arg_pair *pair); int lua_module_manager_call_exit(struct lua_module_manager *lua_mod_mgr); - struct lua_state *lua_module_manager_get_current_thread_state(struct lua_module_manager *lua_mod_mgr); struct stellar_module_manager *lua_module_manager_get_stellar_module_manager(struct lua_module_manager *lua_mod_mgr); + struct mq_schema *lua_module_manager_get_mq_schema(struct lua_module_manager *lua_mod_mgr); + struct mq_runtime *lua_module_manager_get_mq_runtime(struct lua_module_manager *lua_mod_mgr); + struct logger *lua_module_manager_get_logger(struct lua_module_manager *lua_mod_mgr); + struct packet_manager *lua_module_manager_get_packet_manager(struct lua_module_manager *lua_mod_mgr); + struct session_manager *lua_module_manager_get_session_manager(struct lua_module_manager *lua_mod_mgr); + int lua_module_manager_get_current_thread_id(struct lua_module_manager *lua_mod_mgr); + struct lua_state *lua_module_manager_get_current_thread_state(struct lua_module_manager *lua_mod_mgr); + int lua_module_manager_get_max_thread_num(struct lua_module_manager *lua_mod_mgr); #ifdef __cplusplus } |
