summaryrefslogtreecommitdiff
path: root/include/lua_plugin_manage.h
blob: a76d7854056054729e0a2d7f146498b860b46617 (plain)
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
/*************************************************************************
    > File Name: lua_plugin_manage.h
    > Author:
    > Created Time: 2024-08
    > Encoding : UTF-8
 ************************************************************************/

/*************************************************************************
 * version
 * [ v0.1 ]
 * 08-01
 * 1. 修改外部暴露接口
 *    lua_plugin_manage_init
 *    lua_plugin_manage_exit
 * 2. 声明数据结构
 *    struct lua_plugin_manage_schema
 *
 * 08-09
 * 1. 修改参数函数原型, 传入参数修改为已经加载的配置信息
 ************************************************************************/
#pragma once

#include "stellar/stellar.h"

struct lua_config_specific
{
    /* 插件需要使用的文件名 */
    char *config_specific_file;
    /* 加载插件需要调用的函数名称 */
    char *config_specific_load_func;
    /* 卸载插件需要调用的函数名称 */
    char *config_specific_unload_func;
};

struct lua_plugin_manage_schema;

struct lua_plugin_manage_schema *lua_plugin_manage_init(struct stellar *st, int specific_count, struct lua_config_specific *specifics);
int lua_plugin_manage_load_one_specific(struct lua_plugin_manage_schema *schema, struct lua_config_specific *specific);
void lua_plugin_manage_exit(struct lua_plugin_manage_schema *lua_plug_mgr);

void lua_plugin_get_statistics(int plugin_id, int thread_id, int *new_success, int *new_fail, int *free_success, int *free_fail);

void debug_lua_plugin_manage_schema(struct lua_plugin_manage_schema *schema);