/mnt/hgfs/jamie_On_My_Mac/store/version_control/svn/integralive/library/trunk/src/luascripting.c File Reference

#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 Documentation

#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,
...   ) 
Value:
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
Value:
ntg_lock_server();                              \
  lua_locked_server=true;
#define SERVER_UNLOCK
Value:
lua_locked_server=false;                        \
  ntg_unlock_server()

Function Documentation

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.

Parameters:
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().


Variable Documentation

lua_State* L

Referenced by ntg_instance_new().

struct { ... } luascripting_t

Referenced by init_luascripting().


Generated on Tue Jan 5 14:02:29 2010 for LibIntegra by  doxygen 1.6.1