【修改】调整部分头文件路径,替换部分测试函数
This commit is contained in:
@@ -20,7 +20,7 @@
|
|||||||
************************************************************************/
|
************************************************************************/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "stellar.h"
|
#include "stellar/stellar.h"
|
||||||
|
|
||||||
struct lua_config_specific
|
struct lua_config_specific
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,7 +30,9 @@
|
|||||||
* int lua_mq_unignore_message
|
* int lua_mq_unignore_message
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
#include "lua_plugin_manage_internal.h"
|
#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)
|
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)
|
int lua_session_get_id(lua_State *state)
|
||||||
{
|
{
|
||||||
/* 参数个数检查 */
|
/* 参数个数检查 */
|
||||||
@@ -191,6 +194,32 @@ int lua_session_set_id(lua_State *state)
|
|||||||
return 0;
|
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)
|
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_pop(state, 1);
|
||||||
|
|
||||||
lua_pushinteger(state, session_get_type(sess));
|
lua_pushinteger(state, (int)session_get_type(sess));
|
||||||
return 1;
|
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: 未完整考虑线程安全问题, 例如
|
* TODO: 未完整考虑线程安全问题, 例如
|
||||||
|
|||||||
@@ -35,10 +35,12 @@
|
|||||||
int lua_plugin_manage_regist(lua_State *state);
|
int lua_plugin_manage_regist(lua_State *state);
|
||||||
|
|
||||||
/* 与struct session结构相关的函数 */
|
/* 与struct session结构相关的函数 */
|
||||||
|
#if 0
|
||||||
int lua_session_get_id(lua_State *state);
|
int lua_session_get_id(lua_State *state);
|
||||||
int lua_session_set_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);
|
int lua_session_set_type(lua_State *state);
|
||||||
|
#endif
|
||||||
|
int lua_session_get_type(lua_State *state);
|
||||||
|
|
||||||
/* 与stellar message mq相关的函数 */
|
/* 与stellar message mq相关的函数 */
|
||||||
int lua_mq_create_topic(lua_State * state);
|
int lua_mq_create_topic(lua_State * state);
|
||||||
|
|||||||
@@ -35,10 +35,10 @@
|
|||||||
/* 需要注册至状态机中的函数定义在链表中, 会依次完成注册 */
|
/* 需要注册至状态机中的函数定义在链表中, 会依次完成注册 */
|
||||||
struct lua_binding_function lua_bind_functions[] = {
|
struct lua_binding_function lua_bind_functions[] = {
|
||||||
{lua_plugin_manage_regist, "register", "plugin_manage"},
|
{lua_plugin_manage_regist, "register", "plugin_manage"},
|
||||||
{lua_session_get_id, "getid", "session"},
|
// {lua_session_get_id, "getid", "session"},
|
||||||
{lua_session_set_id, "setid", "session"},
|
// {lua_session_set_id, "setid", "session"},
|
||||||
{lua_session_get_type, "gettype", "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_create_topic, "createtopic", "message"},
|
||||||
{lua_mq_get_topic_id, "gettopicid", "message"},
|
{lua_mq_get_topic_id, "gettopicid", "message"},
|
||||||
{lua_mq_update_topic, "updatetopic", "message"},
|
{lua_mq_update_topic, "updatetopic", "message"},
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
************************************************************************/
|
************************************************************************/
|
||||||
#include "lua_plugin_manage_internal.h"
|
#include "lua_plugin_manage_internal.h"
|
||||||
|
|
||||||
|
#include "stellar/session.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function: lpm_ctx_new_func
|
* Function: lpm_ctx_new_func
|
||||||
* Input: | struct session * | sess | 会话信息
|
* Input: | struct session * | sess | 会话信息
|
||||||
@@ -41,7 +43,7 @@ void *lpm_ctx_new_func(
|
|||||||
struct lua_model *env = (struct lua_model *)plugin_env;
|
struct lua_model *env = (struct lua_model *)plugin_env;
|
||||||
|
|
||||||
/* 获取插件ID并找到该插件 */
|
/* 获取插件ID并找到该插件 */
|
||||||
int plugin_id = session_get_pluginid(sess);
|
int plugin_id = session_get_current_plugin_id(sess);
|
||||||
// int plugin_id = 1;
|
// int plugin_id = 1;
|
||||||
struct lua_plugin *plugin = NULL;
|
struct lua_plugin *plugin = NULL;
|
||||||
while ((plugin = utarray_next(env->plugin_array, plugin)))
|
while ((plugin = utarray_next(env->plugin_array, plugin)))
|
||||||
@@ -55,7 +57,7 @@ void *lpm_ctx_new_func(
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* 获取当前的线程id并找到该线程对应的state */
|
/* 获取当前的线程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)
|
if (thread_id > global_schema->state_count)
|
||||||
return NULL;
|
return NULL;
|
||||||
lua_State *state = global_schema->thread_state[thread_id];
|
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;
|
struct lua_model *env = (struct lua_model *)plugin_env;
|
||||||
|
|
||||||
/* 获取插件ID并找到该插件 */
|
/* 获取插件ID并找到该插件 */
|
||||||
int plugin_id = session_get_pluginid(sess);
|
int plugin_id = session_get_current_plugin_id(sess);
|
||||||
// int plugin_id = 1;
|
// int plugin_id = 1;
|
||||||
struct lua_plugin *plugin = NULL;
|
struct lua_plugin *plugin = NULL;
|
||||||
while ((plugin = utarray_next(env->plugin_array, plugin)))
|
while ((plugin = utarray_next(env->plugin_array, plugin)))
|
||||||
@@ -113,7 +115,7 @@ void lpm_ctx_free_func(
|
|||||||
/* 未找到该插件 */
|
/* 未找到该插件 */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int thread_id = session_get_threadid(sess);
|
int thread_id = session_get_current_thread_id(sess);
|
||||||
if (thread_id > global_schema->state_count)
|
if (thread_id > global_schema->state_count)
|
||||||
return;
|
return;
|
||||||
lua_State *state = global_schema->thread_state[thread_id];
|
lua_State *state = global_schema->thread_state[thread_id];
|
||||||
@@ -150,7 +152,7 @@ void lpm_message_free_func(
|
|||||||
return;
|
return;
|
||||||
struct lua_message_mq *plugin_mq = (struct lua_message_mq *)msg_free_arg;
|
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)
|
if (thread_id > global_schema->state_count)
|
||||||
return;
|
return;
|
||||||
lua_State *state = global_schema->thread_state[thread_id];
|
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;
|
struct lua_model *env = (struct lua_model *)plugin_env;
|
||||||
|
|
||||||
/* 获取插件ID并找到该插件 */
|
/* 获取插件ID并找到该插件 */
|
||||||
int plugin_id = session_get_pluginid(sess);
|
int plugin_id = session_get_current_plugin_id(sess);
|
||||||
// int plugin_id = 1;
|
// int plugin_id = 1;
|
||||||
struct lua_plugin *plugin = NULL;
|
struct lua_plugin *plugin = NULL;
|
||||||
while ((plugin = utarray_next(env->plugin_array, plugin)))
|
while ((plugin = utarray_next(env->plugin_array, plugin)))
|
||||||
@@ -218,7 +220,7 @@ void lpm_on_session_msg_func(
|
|||||||
/* 判断该消息是由C端插件产生的还是由Lua插件产生的 */
|
/* 判断该消息是由C端插件产生的还是由Lua插件产生的 */
|
||||||
struct lua_message_mq *message_mq = search_message_mq_by_id(topic_id);
|
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)
|
if (thread_id > global_schema->state_count)
|
||||||
return;
|
return;
|
||||||
lua_State *state = global_schema->thread_state[thread_id];
|
lua_State *state = global_schema->thread_state[thread_id];
|
||||||
|
|||||||
Reference in New Issue
Block a user