![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00008 #include <vrfLua/vrfLuaDefines.h> 00009 00010 #include <vrfLua/luaScriptController.h> 00011 00012 #include <lua.hpp> 00013 #include <lauxlib.h> 00014 #include <lualib.h> 00015 00016 class DtCgf; 00017 class DtVrfObject; 00018 00019 namespace vrfLua 00020 { 00021 00022 class DtLuaScriptDescriptor; 00023 00028 class DT_DLL_vrfLua DtLuaScriptManager 00029 { 00030 public: 00031 00033 DtLuaScriptManager(DtCgf* cgf); 00034 00036 virtual ~DtLuaScriptManager(); 00037 00038 virtual bool initializeLua(); 00039 00041 virtual bool initializeVRFLuaExtensions(lua_State* L); 00042 00044 virtual bool initializeVRFObject(lua_State* L, DtVrfObject* vrfObject); 00045 virtual bool initializeThisVRFObject(lua_State* L, DtVrfObject* vrfObject); 00046 00047 DtCgf* getCgf() const { return myCgf; } 00048 00049 virtual void reloadScriptForAllConcernedKynapseEntities(const DtString & scriptName, const DtString & scriptFullPath); 00050 00051 protected: 00052 static void requestLuaScriptsCallback(DtSimMessage* msg, void* usr); 00053 virtual void processRequestLuaScripts(DtSimMessage* msg); 00054 00055 static void requestScriptTextCallback(DtSimMessage* msg, void* usr); 00056 virtual void processRequestScriptText(DtSimMessage* msg); 00057 00058 static void setScriptTextCallback(DtSimMessage* msg, void* usr); 00059 virtual void processSetScriptText(DtSimMessage* msg); 00060 00061 static void deleteScriptCallback(DtSimMessage* msg, void* usr); 00062 virtual void processDeleteScript(DtSimMessage* msg); 00063 00065 static void objectAddedCallback(DtVrfObject* vrfObject, void* usr); 00067 virtual void processObjectAdded(DtVrfObject* vrfObject); 00069 static void objectRemovedCallback(DtVrfObject* vrfObject, void* usr); 00071 virtual void processObjectRemoved(DtVrfObject* vrfObject); 00072 00075 virtual DtLuaScriptController* createLuaComponent(DtVrfObject* vrfObject); 00076 00077 00079 virtual void sendScriptList(); 00080 00082 virtual std::vector<DtString> scriptNamesOnDisk(); 00083 00085 virtual void sendScriptText(const DtString& scriptName); 00086 00090 virtual void saveScriptText(const DtString& scriptName, 00091 const std::list<DtString>& scriptLines); 00092 00095 virtual bool deleteScript(const DtString& scriptName); 00096 00097 //The following are libraries that register all of the functions available to 00098 //the Lua user 00099 static const struct luaL_reg myVrfLib []; 00100 static const struct luaL_reg myVrfObjLib []; 00101 static const struct luaL_reg myThisVrfObjLib []; 00102 00103 protected: 00104 DtCgf* myCgf; 00105 DtLuaScriptDescriptor* myLuaDescriptor; 00106 00107 }; 00108 } 00109