lua::interpreter::Lua Class Reference

Lua interpreter. More...

#include <_src_lua_bind_lua.hh>

List of all members.

Public Member Functions

 DEF_GetInstance (Lua) void ExportCmdLine(int argc
void SetScriptDir (const string &scriptDir)
string GetScriptDir (void)
void RunScript (const string &scriptName, const bool recompile=false)
bool ReadVarAsBool (const string &varName)
LuaNumber ReadVarAsNumber (const string &varName)
string ReadVarAsString (const string &varName)
LuaNumber ReadTableAsNumber (const string &tableName, const int tableIdx)
LuaNumber ReadTableAsNumber (const string &tableName, const string &memberName)
string ReadTableAsString (const string &tableName, const int tableIdx)
string ReadTableAsString (const string &tableName, const string &memberName)
LuaNumber CallLuaFunc (const string &tableName, const string &funcName, const vector< LuaNumber > &args)

Public Attributes

char ** argv
CLASS_VAR bool msTypeErrorAsException = false
 throw C++ exception instead of longjump back to Lua

Private Types

typedef map< string, int > BytecodeMap

Private Member Functions

 Lua (void)
 ~Lua ()
void SaveStack (void)
void RestoreStack (void)
void ThrowLuaException (const string &msg)

Private Attributes

CLASS_VAR LuamsInstance
 instance of Lua
CLASS_VAR const luaL_Reg mFuncTable []
 C interface functions exported to Lua scripts.
lua_State * mLua
 the Lua interpreter (C code)
string mScriptDir
 directory containing scripts
BytecodeMap mBytecodeMap
 avoids recompiling Lua bytecode
int mSavedStack
 stack depth


Detailed Description

Lua interpreter.

NOTE: Most methods might throw a C++ exception.


Member Typedef Documentation

typedef map<string,int> lua::interpreter::Lua::BytecodeMap [private]


Constructor & Destructor Documentation

lua::interpreter::Lua::Lua ( void   )  [private]

ctor/dtor.

lua::interpreter::Lua::~Lua (  )  [private]


Member Function Documentation

lua::interpreter::Lua::DEF_GetInstance ( Lua   ) 

void lua::interpreter::Lua::SetScriptDir ( const string &  scriptDir  ) 

Set the directory containing Lua scripts.

string lua::interpreter::Lua::GetScriptDir ( void   )  [inline]

void lua::interpreter::Lua::RunScript ( const string &  scriptName,
const bool  recompile = false 
)

THROWS C++ EXCEPTION. Execute a script. To avoid recompiling, the bytecode of a Lua script is stored in case the same script is called again. http://lua-users.org/lists/lua-l/2003-07/msg00082.html

bool lua::interpreter::Lua::ReadVarAsBool ( const string &  varName  ) 

THROWS C++ EXCEPTION. Read a boolean variable from Lua. Note that the Lua C API treats boolean and number as distinct types. But this method will treat any non-zero number as "true" (as in C++). So this method will treat these as equivalent: enableLighting = true enableLighting = 1

LuaNumber lua::interpreter::Lua::ReadVarAsNumber ( const string &  varName  ) 

THROWS C++ EXCEPTION. Read a number variable from Lua.

string lua::interpreter::Lua::ReadVarAsString ( const string &  varName  ) 

THROWS C++ EXCEPTION. Read a string variable from Lua.

LuaNumber lua::interpreter::Lua::ReadTableAsNumber ( const string &  tableName,
const int  tableIdx 
)

THROWS C++ EXCEPTION. Read a member of table by numeric index (treats table as an array).

LuaNumber lua::interpreter::Lua::ReadTableAsNumber ( const string &  tableName,
const string &  memberName 
)

THROWS C++ EXCEPTION. Read a member of table by key (key is a string).

string lua::interpreter::Lua::ReadTableAsString ( const string &  tableName,
const int  tableIdx 
)

THROWS C++ EXCEPTION. Read a member of table by numeric index (treats table as an array).

string lua::interpreter::Lua::ReadTableAsString ( const string &  tableName,
const string &  memberName 
)

THROWS C++ EXCEPTION. Read a member of table by key (key is a string).

LuaNumber lua::interpreter::Lua::CallLuaFunc ( const string &  tableName,
const string &  funcName,
const vector< LuaNumber > &  args 
)

Call a Lua function from C++ (as a method in a table). tableName:funcName( args )

Parameters:
tableName 
funcName 
args Can be empty.

void lua::interpreter::Lua::SaveStack ( void   )  [inline, private]

void lua::interpreter::Lua::RestoreStack ( void   )  [inline, private]

void lua::interpreter::Lua::ThrowLuaException ( const string &  msg  )  [inline, private]


Member Data Documentation

instance of Lua

throw C++ exception instead of longjump back to Lua

CLASS_VAR const luaL_Reg lua::interpreter::Lua::mFuncTable[] [private]

C interface functions exported to Lua scripts.

lua_State* lua::interpreter::Lua::mLua [private]

the Lua interpreter (C code)

directory containing scripts

avoids recompiling Lua bytecode

stack depth


The documentation for this class was generated from the following files:
Palomino Flight Simulator documents generated by doxygen 1.5.6 on Tue Sep 28 11:37:49 2010