summaryrefslogtreecommitdiff
path: root/src/lua_module_manage_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua_module_manage_internal.h')
-rw-r--r--src/lua_module_manage_internal.h80
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
}