1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#include "stellar/stellar.h"
#include "stellar/packet_mq.h"
#include "stellar/session.h"
#include "stellar/session_mq.h"
#include "lua_plugin_manage_internal.h"
/* ***** ***** ***** ***** ***** ***** */
/* 需要注册至lua中供lua调用的所有函数原型 */
/* 通用函数 */
int lua_get_worker_thread_num(struct lua_state *state);
int lua_get_current_thread_id(struct lua_state *state);
int lua_get_stellar_pointer(struct lua_state *state);
// int lua_get_plugin_manage_pointer(struct lua_state *state);
/* 注册函数 */
int lua_session_plugin_regist(struct lua_state *state);
int lua_packet_plugin_regist(struct lua_state *state);
/* struct session结构相关的函数 */
int lua_session_get_type(struct lua_state *state);
/* packet message mq相关的函数 */
int lua_packet_mq_create_topic(struct lua_state *state);
int lua_packet_mq_get_topic_id(struct lua_state *state);
int lua_packet_mq_update_topic(struct lua_state *state);
int lua_packet_mq_destory_topic(struct lua_state *state);
int lua_packet_mq_subscribe_topic(struct lua_state *state);
int lua_packet_mq_publish_message(struct lua_state *state);
/* session message mq相关的函数 */
int lua_session_mq_create_topic(struct lua_state *state);
int lua_session_mq_get_topic_id(struct lua_state *state);
int lua_session_mq_update_topic(struct lua_state *state);
int lua_session_mq_destory_topic(struct lua_state *state);
int lua_session_mq_subscribe_topic(struct lua_state *state);
int lua_session_mq_publish_message(struct lua_state *state);
int lua_session_mq_topic_is_active(struct lua_state *state);
int lua_session_mq_ignore_message(struct lua_state *state);
int lua_session_mq_unignore_message(struct lua_state *state);
/* ***** ***** ***** ***** ***** ***** */
/* 此部分为注册至C中的lua通用函数, 实现在lua_plugin_cfunc.c中 */
void *lpm_ctx_new_func(struct session *sess, void *plugin_env);
void lpm_ctx_free_func(struct session *sess, void *sess_ctx, void *plugin_env);
void lpm_session_message_free_func(struct session *sess, void *msg, void *msg_free_arg);
void lpm_on_session_msg_func(struct session *sess, int topic_id, const void *msg, void *sess_ctx, void *plugin_env);
void lpm_on_packet_func(struct packet *pkt, unsigned char ip_protocol, void *plugin_env);
void lpm_packet_message_free_func(struct packet *pkt, void *msg, void *msg_free_arg);
void lpm_on_packet_msg_func(struct packet *pkt, int topic_id, const void *msg, void *plugin_env);
|