39 #include <ptbuildopts.h> 54 virtual bool LoadString(
const char * text);
56 virtual bool LoadFile(
const char * filename);
58 virtual bool Run(
const char * program = NULL);
60 virtual void OnError(
int code,
const PString & str);
62 operator lua_State * () {
return m_lua; }
64 virtual void SetValue(
const char * name,
const char * value);
65 virtual PString GetValue(
const char * name);
67 typedef int (*CFunction)(lua_State *L);
68 virtual void SetFunction(
const char * name, CFunction func);
70 bool CallLuaFunction(
const char * name);
71 bool CallLuaFunction(
const char * name,
const char * sig, ...);
73 static int TraceFunction(lua_State * L);
75 PString GetLastErrorText()
const 76 {
return m_lastErrorText; }
78 void BindToInstanceStart(
const char * instanceName);
79 void BindToInstanceFunc(
const char * lua_name,
void * obj, CFunction func);
80 void BindToInstanceEnd(
const char * instanceName);
82 static void * GetInstance(lua_State * L);
89 #define PLUA_BINDING_START(class_type) \ 90 typedef class_type PLua_InstanceType; \ 91 void UnbindFromInstance(PLua &, const char *) { } \ 92 void BindToInstance(PLua & lua, const char * instanceName) \ 94 lua.BindToInstanceStart(instanceName); 96 #define PLUA_BINDING2(cpp_name, lua_name) \ 97 lua.BindToInstanceFunc(lua_name, (void *)this, &PLua_InstanceType::cpp_name##_callback); 99 #define PLUA_BINDING(fn_name) \ 100 PLUA_BINDING2(fn_name, #fn_name) 102 #define PLUA_BINDING_END() \ 103 lua.BindToInstanceEnd(instanceName); \ 106 #define PLUA_FUNCTION_DECL(fn_name) \ 107 static int fn_name##_callback(lua_State * L) \ 109 return ((PLua_InstanceType *)PLua::GetInstance(L))->fn_name(L); \ 112 #define PLUA_FUNCTION(fn_name) \ 113 PLUA_FUNCTION_DECL(fn_name) \ 114 int fn_name(lua_State * L) \ 116 #define PLUA_FUNCTION_NOARGS(fn_name) \ 117 PLUA_FUNCTION_DECL(fn_name) \ 118 int fn_name(lua_State *) \ 120 #define PLUA_DECLARE_FUNCTION(fn_name) \ 121 PLUA_FUNCTION_DECL(fn_name) \ 122 int fn_name(lua_State * L); \ 129 #endif // PTLIB_LUA_H The character string class.
Definition: pstring.h:108