diff options
author | Mattes D <github@xoft.cz> | 2015-09-28 21:30:31 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2015-09-28 21:30:31 +0200 |
commit | 1c8e60f91a647e681fa700d8b8ec9b49a940061f (patch) | |
tree | 8ebb9154a78f78ca4d81e39d3c0604afdf0cadf3 /src/Bindings/LuaState.h | |
parent | Merge pull request #2507 from cuberite/LuaStrictStrings (diff) | |
download | cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.tar cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.tar.gz cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.tar.bz2 cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.tar.lz cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.tar.xz cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.tar.zst cuberite-1c8e60f91a647e681fa700d8b8ec9b49a940061f.zip |
Diffstat (limited to 'src/Bindings/LuaState.h')
-rw-r--r-- | src/Bindings/LuaState.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Bindings/LuaState.h b/src/Bindings/LuaState.h index 269a10369..4f688be6c 100644 --- a/src/Bindings/LuaState.h +++ b/src/Bindings/LuaState.h @@ -210,6 +210,9 @@ public: /** Returns true if the m_LuaState is valid */ bool IsValid(void) const { return (m_LuaState != nullptr); } + + /** Returns the name of the subsystem, as specified when the instance was created. */ + AString GetSubsystemName(void) const { return m_SubsystemName; } /** Adds the specified path to package.<a_PathVariable> */ void AddPackagePath(const AString & a_PathVariable, const AString & a_Path); @@ -521,3 +524,37 @@ protected: + +/** Keeps track of all create cLuaState instances. +Can query each for the amount of currently used memory. */ +class cLuaStateTracker +{ +public: + /** Adds the specified Lua state to the internal list of LuaStates. */ + static void Add(cLuaState & a_LuaState); + + /** Deletes the specified Lua state from the internal list of LuaStates. */ + static void Del(cLuaState & a_LuaState); + + /** Returns the statistics for all the registered LuaStates. */ + static AString GetStats(void); + +protected: + typedef cLuaState * cLuaStatePtr; + typedef std::vector<cLuaStatePtr> cLuaStatePtrs; + + /** The internal list of LuaStates. + Protected against multithreaded access by m_CSLuaStates. */ + cLuaStatePtrs m_LuaStates; + + /** Protects m_LuaStates against multithreaded access. */ + cCriticalSection m_CSLuaStates; + + + /** Returns the single instance of this class. */ + static cLuaStateTracker & Get(void); +}; + + + + |