VR-Forces 4.0.4 Class Documentation
include/vrfLua/luaScriptManager.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)