【修改】调整部分头文件路径,替换部分测试函数
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#include "stellar.h"
|
||||
#include "stellar/stellar.h"
|
||||
|
||||
struct lua_config_specific
|
||||
{
|
||||
|
||||
@@ -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: 未完整考虑线程安全问题, 例如
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"},
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user