#ifndef __LUA_VM_H #define __LUA_VM_H #include "LuaGlueExportable.hpp" #include "lua.hpp" #include #include class LuaVM { public: LUAGLUE_DLL_VISIBLE LuaVM( ); LUAGLUE_DLL_VISIBLE ~LuaVM( ); LUAGLUE_DLL_VISIBLE void loadSource( const char *sourceFilename ); LUAGLUE_DLL_VISIBLE void executeMain( ); LUAGLUE_DLL_VISIBLE void executeFunction( const std::string &f ); LUAGLUE_DLL_VISIBLE void dumpState( ); LUAGLUE_DLL_VISIBLE void dumpGlobals( ); LUAGLUE_DLL_VISIBLE void dumpStack( ); LUAGLUE_DLL_VISIBLE void fullGarbageCollect( ); LUAGLUE_DLL_VISIBLE std::string getString( const std::string &key ); LUAGLUE_DLL_VISIBLE std::vector getStringArray( const std::string &key ); LUAGLUE_DLL_VISIBLE bool getBoolean( const std::string &key ); LUAGLUE_DLL_VISIBLE lua_State *handle( ); private: void initialize( ); int findValue( const std::string &key ); void dumpStackElement( lua_State *l, int i, int indent = 0 ); private: lua_State *m_lua; std::string m_sourceFilename; }; #endif