#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/time.h>
#include <signal.h>
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
#include <Integra/integra_server.h>
#include <Integra/integra_types.h>
#include <Integra/integra_lua.h>
#include "luascripting.h"
#include "server.h"
#include "collection.h"
#include "debug.h"
#include "atomic/lffifo.h"
#include "lua_init.c"
Data Structures | |
struct | unrun_script_t |
Defines | |
#define | _POSIX_C_SOURCE 200112L |
#define | SERVER_LOCK |
#define | SERVER_UNLOCK |
#define | SERVER_DO(rettype, name, nargs, server_do_args, callback_args, dispatching,...) |
#define | SERVER_DO1(rettype, name, type1, var1) SERVER_DO(rettype,name,1,(name##_callback,1,var1),(server,var1),type1 var1=va_arg(argv,type1);,type1 var1) |
#define | SERVER_DO2(rettype, name, type1, var1, type2, var2) SERVER_DO(rettype,name,2,(name##_callback,2,var1,var2),(server,var1,var2),type1 var1=va_arg(argv,type1);type2 var2=va_arg(argv,type2);,type1 var1,type2 var2) |
#define | SERVER_DO3(rettype, name, type1, var1, type2, var2, type3, var3) SERVER_DO(rettype,name,3,(name##_callback,3,var1,var2,var3),(server,var1,var2,var3),type1 var1=va_arg(argv,type1);type2 var2=va_arg(argv,type2);type3 var3=va_arg(argv,type3),type1 var1,type2 var2,type3 var3) |
#define | ICD_ARGS ilua_server, source_name, source_attribute, target_name, target_attribute |
Functions | |
bool | init_luascripting (ntg_server *server) |
void | ntg_lua_eval (ntg_server *server, const char *string) |
Evaluate a string containing lua code. | |
Variables | |
struct { | |
ntg_server * server | |
lua_State * L | |
} | luascripting_t |
#define _POSIX_C_SOURCE 200112L |
#define ICD_ARGS ilua_server, source_name, source_attribute, target_name, target_attribute |
#define SERVER_DO | ( | rettype, | |||
name, | |||||
nargs, | |||||
server_do_args, | |||||
callback_args, | |||||
dispatching, | |||||
... | ) |
static void* name##_callback(ntg_server *server,const int argc,va_list argv); \ static rettype name##_callback2(ntg_server *server,__VA_ARGS__); \ \ rettype name(ntg_server *server,__VA_ARGS__){ \ return (rettype) ntg_server_do server_do_args ; \ } \ \ static void* name##_callback(ntg_server *server,const int argc,va_list argv){ \ dispatching \ return (void*) name##_callback2 callback_args ; \ } \ \ static rettype name##_callback2(ntg_server *server,__VA_ARGS__)
#define SERVER_DO1 | ( | rettype, | |||
name, | |||||
type1, | |||||
var1 | ) | SERVER_DO(rettype,name,1,(name##_callback,1,var1),(server,var1),type1 var1=va_arg(argv,type1);,type1 var1) |
#define SERVER_DO2 | ( | rettype, | |||
name, | |||||
type1, | |||||
var1, | |||||
type2, | |||||
var2 | ) | SERVER_DO(rettype,name,2,(name##_callback,2,var1,var2),(server,var1,var2),type1 var1=va_arg(argv,type1);type2 var2=va_arg(argv,type2);,type1 var1,type2 var2) |
#define SERVER_DO3 | ( | rettype, | |||
name, | |||||
type1, | |||||
var1, | |||||
type2, | |||||
var2, | |||||
type3, | |||||
var3 | ) | SERVER_DO(rettype,name,3,(name##_callback,3,var1,var2,var3),(server,var1,var2,var3),type1 var1=va_arg(argv,type1);type2 var2=va_arg(argv,type2);type3 var3=va_arg(argv,type3),type1 var1,type2 var2,type3 var3) |
#define SERVER_LOCK |
ntg_lock_server(); \ lua_locked_server=true;
#define SERVER_UNLOCK |
lua_locked_server=false; \ ntg_unlock_server()
bool init_luascripting | ( | ntg_server * | server | ) |
References luascripting_t.
Referenced by ntg_server_new().
void ntg_lua_eval | ( | ntg_server * | server, | |
const char * | string | |||
) |
Evaluate a string containing lua code.
Note, the function returns immediately, and it doesn't matter whether the server is locked or not when calling.
server | Server object created by ntg_server_new | |
string | A string containing lua code The string can contain several lines separated by lineshifts. |
References unrun_script_t::script.
Referenced by ntg_runscript().
lua_State* L |
Referenced by ntg_instance_new().
struct { ... } luascripting_t |
Referenced by init_luascripting().