VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
luaScriptResourceManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
7 #include <vrfLua/vrfLuaDefines.h>
9 #include <vlutil/vlFilename.h>
10 #include <lua.hpp>
11 #include <list>
12 #include <map>
13 #include <vlutil/vlSmartPointers.h>
14 #include <string>
15 
18 {
19 public:
21  virtual ~DtLuaScriptResourceManager();
22 
25  virtual void initializeForScenario(unsigned numObjects);
26 
28  virtual lua_State* getLuaState(bool forBackgroundProcess = false);
29 
31  virtual bool loadModule(lua_State* L, const std::string& moduleName);
32 
34  static lua_State* createLuaState(const std::vector<std::string>& scriptPaths, bool forBackgroundProcess = false);
35 
37  static bool initializeVRFLuaExtensions(lua_State* L, const std::vector<std::string>& scriptPaths, bool forBackgroundProcess = false);
38 
40  static DtScriptResourceManager* creator();
41 
42 protected:
43 
45  virtual std::string findLuaModuleFile(const std::string& filename);
46 
48  virtual void saveBytecodeChunk(lua_State* L, const std::string& chunkName);
49 
50  typedef std::vector<char> DtLuaBytecodeChunk;
51  typedef DtBoost::shared_ptr<DtLuaBytecodeChunk> DtLuaBytecodeChunkPtr;
54  {
57  };
58 
60  virtual void createLuaStates(unsigned numStates);
61 
64 
65  static int luaBytecodeSaveCb(lua_State *L, const void* p, size_t sz, void* ud);
66 
67  static const char* luaBytecodeLoadCb(lua_State *L, void *ud, size_t *size);
68 
69  std::list<lua_State*> myLuaStates;
70  std::map<std::string, DtLuaBytecodeChunkPtr > myLuaBytecodeChunks;
71 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)