【新增】概要设计、接口头文件及例子
This commit is contained in:
59
example/example.c
Normal file
59
example/example.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#include "lua_plugin_manage.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
int session_getid(struct lpm_state * state)
|
||||
{
|
||||
if ( lpm_cbinding_get_params_count(state) != 1 )
|
||||
return 0;
|
||||
struct lpm_cdata data;
|
||||
lpm_cbinding_get_params(state, 1, &data);
|
||||
struct session * sess = (struct session *)data.data_user;
|
||||
lpm_cdata_clean(&data);
|
||||
int session_id = sess->id;
|
||||
|
||||
data.data_type = LPM_DATATYPE_INT;
|
||||
lpm_cbinding_push_return(state, 1, &data);
|
||||
lpm_cdata_clean(&data);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int binding_functions(struct lpm_state * state) {
|
||||
int count = 0;
|
||||
if ( lpm_cbinding_function_register(state, session_getid, "getid", "session") ) {
|
||||
count += 1;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
int binding_data(struct lpm_state * state) {
|
||||
int count = 0;
|
||||
const char * version = "v0.1";
|
||||
struct lpm_cdata data;
|
||||
data.data_type = LPM_DATATYPE_CSTRING;
|
||||
data.data_length = strlen(version);
|
||||
data.data_string = strdup(version);
|
||||
if ( lpm_cdata_register(state, &data, "version", NULL) ) {
|
||||
count += 1;
|
||||
}
|
||||
lpm_cdata_clean(&data);
|
||||
return count;
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
struct stellar st;
|
||||
struct lpm_state * state = lpm_state_instance_create();
|
||||
binding_functions(state);
|
||||
binding_data(state);
|
||||
lpm_state_instance_init(&st, state, "config.toml");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
lpm_state_instance_free(state);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user