【修改】调整部分头文件路径,替换部分测试函数

This commit is contained in:
niubinghui
2024-08-16 11:50:23 +08:00
parent 3b2baf2806
commit fce204c8b6
5 changed files with 47 additions and 39 deletions

View File

@@ -20,7 +20,7 @@
************************************************************************/
#pragma once
#include "stellar.h"
#include "stellar/stellar.h"
struct lua_config_specific
{

View File

@@ -30,7 +30,9 @@
* int lua_mq_unignore_message
************************************************************************/
#include "lua_plugin_manage_internal.h"
#include "session_mq.h"
#include "stellar/session.h"
#include "stellar/session_mq.h"
/* ***** ***** ***** ***** ***** ***** */
int lua_plugin_manage_regist(lua_State *state)
@@ -138,6 +140,7 @@ int lua_plugin_manage_regist(lua_State *state)
}
/* ***** ***** ***** ***** ***** ***** */
#if 0
int lua_session_get_id(lua_State *state)
{
/* 参数个数检查 */
@@ -191,6 +194,32 @@ int lua_session_set_id(lua_State *state)
return 0;
}
int lua_session_set_type(lua_State *state)
{
/* 参数个数检查 */
if (lua_gettop(state) != 2)
{
lua_settop(state, 0);
return 0;
}
/* 参数类型检查 */
if (lua_type(state, -1) != LUA_TNUMBER || lua_type(state, -2) != LUA_TLIGHTUSERDATA)
{
lua_settop(state, 0);
return 0;
}
int settype = lua_tointeger(state, -1);
lua_pop(state, 1);
struct session *sess = (struct session *)lua_topointer(state, -1);
lua_pop(state, 1);
session_set_type(sess, settype);
return 0;
}
#endif
int lua_session_get_type(lua_State *state)
{
/* 参数个数检查 */
@@ -215,35 +244,10 @@ int lua_session_get_type(lua_State *state)
}
lua_pop(state, 1);
lua_pushinteger(state, session_get_type(sess));
lua_pushinteger(state, (int)session_get_type(sess));
return 1;
}
int lua_session_set_type(lua_State *state)
{
/* 参数个数检查 */
if (lua_gettop(state) != 2)
{
lua_settop(state, 0);
return 0;
}
/* 参数类型检查 */
if (lua_type(state, -1) != LUA_TNUMBER || lua_type(state, -2) != LUA_TLIGHTUSERDATA)
{
lua_settop(state, 0);
return 0;
}
int settype = lua_tointeger(state, -1);
lua_pop(state, 1);
struct session *sess = (struct session *)lua_topointer(state, -1);
lua_pop(state, 1);
session_set_id(sess, settype);
return 0;
}
/* ***** ***** ***** ***** ***** ***** */
/*
* TODO: 未完整考虑线程安全问题, 例如

View File

@@ -35,10 +35,12 @@
int lua_plugin_manage_regist(lua_State *state);
/* 与struct session结构相关的函数 */
#if 0
int lua_session_get_id(lua_State *state);
int lua_session_set_id(lua_State *state);
int lua_session_get_type(lua_State *state);
int lua_session_set_type(lua_State *state);
#endif
int lua_session_get_type(lua_State *state);
/* 与stellar message mq相关的函数 */
int lua_mq_create_topic(lua_State * state);

View File

@@ -35,10 +35,10 @@
/* 需要注册至状态机中的函数定义在链表中, 会依次完成注册 */
struct lua_binding_function lua_bind_functions[] = {
{lua_plugin_manage_regist, "register", "plugin_manage"},
{lua_session_get_id, "getid", "session"},
{lua_session_set_id, "setid", "session"},
// {lua_session_get_id, "getid", "session"},
// {lua_session_set_id, "setid", "session"},
{lua_session_get_type, "gettype", "session"},
{lua_session_set_type, "settype", "session"},
// {lua_session_set_type, "settype", "session"},
{lua_mq_create_topic, "createtopic", "message"},
{lua_mq_get_topic_id, "gettopicid", "message"},
{lua_mq_update_topic, "updatetopic", "message"},

View File

@@ -23,6 +23,8 @@
************************************************************************/
#include "lua_plugin_manage_internal.h"
#include "stellar/session.h"
/*
* Function: lpm_ctx_new_func
* Input: | struct session * | sess | 会话信息
@@ -41,7 +43,7 @@ void *lpm_ctx_new_func(
struct lua_model *env = (struct lua_model *)plugin_env;
/* 获取插件ID并找到该插件 */
int plugin_id = session_get_pluginid(sess);
int plugin_id = session_get_current_plugin_id(sess);
// int plugin_id = 1;
struct lua_plugin *plugin = NULL;
while ((plugin = utarray_next(env->plugin_array, plugin)))
@@ -55,7 +57,7 @@ void *lpm_ctx_new_func(
return NULL;
/* 获取当前的线程id并找到该线程对应的state */
int thread_id = session_get_threadid(sess);
int thread_id = session_get_current_thread_id(sess);
if (thread_id > global_schema->state_count)
return NULL;
lua_State *state = global_schema->thread_state[thread_id];
@@ -101,7 +103,7 @@ void lpm_ctx_free_func(
struct lua_model *env = (struct lua_model *)plugin_env;
/* 获取插件ID并找到该插件 */
int plugin_id = session_get_pluginid(sess);
int plugin_id = session_get_current_plugin_id(sess);
// int plugin_id = 1;
struct lua_plugin *plugin = NULL;
while ((plugin = utarray_next(env->plugin_array, plugin)))
@@ -113,7 +115,7 @@ void lpm_ctx_free_func(
/* 未找到该插件 */
return;
int thread_id = session_get_threadid(sess);
int thread_id = session_get_current_thread_id(sess);
if (thread_id > global_schema->state_count)
return;
lua_State *state = global_schema->thread_state[thread_id];
@@ -150,7 +152,7 @@ void lpm_message_free_func(
return;
struct lua_message_mq *plugin_mq = (struct lua_message_mq *)msg_free_arg;
int thread_id = session_get_threadid(sess);
int thread_id = session_get_current_thread_id(sess);
if (thread_id > global_schema->state_count)
return;
lua_State *state = global_schema->thread_state[thread_id];
@@ -194,7 +196,7 @@ void lpm_on_session_msg_func(
struct lua_model *env = (struct lua_model *)plugin_env;
/* 获取插件ID并找到该插件 */
int plugin_id = session_get_pluginid(sess);
int plugin_id = session_get_current_plugin_id(sess);
// int plugin_id = 1;
struct lua_plugin *plugin = NULL;
while ((plugin = utarray_next(env->plugin_array, plugin)))
@@ -218,7 +220,7 @@ void lpm_on_session_msg_func(
/* 判断该消息是由C端插件产生的还是由Lua插件产生的 */
struct lua_message_mq *message_mq = search_message_mq_by_id(topic_id);
int thread_id = session_get_threadid(sess);
int thread_id = session_get_current_thread_id(sess);
if (thread_id > global_schema->state_count)
return;
lua_State *state = global_schema->thread_state[thread_id];