aboutsummaryrefslogtreecommitdiff
path: root/src/libjin-lua/common/je_lua_shared.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin-lua/common/je_lua_shared.hpp')
-rw-r--r--src/libjin-lua/common/je_lua_shared.hpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/libjin-lua/common/je_lua_shared.hpp b/src/libjin-lua/common/je_lua_shared.hpp
deleted file mode 100644
index 6a58ab3..0000000
--- a/src/libjin-lua/common/je_lua_shared.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef __JE_LUA_SHARED_H__
-#define __JE_LUA_SHARED_H__
-
-#include <map>
-#include <vector>
-#include <functional>
-
-#include "libjin/jin.h"
-
-namespace JinEngine
-{
- namespace Lua
- {
-
- class LuaObject;
-
- ///
- /// Thread shared object wrapper.
- ///
- class Shared
- {
- public:
- Shared(Object* obj)
- : mCount(0)
- , mObject(obj)
- {
- }
-
- inline Object* operator->()
- {
- return static_cast<Object*>(mObject);
- }
-
- inline Object* getObject()
- {
- return static_cast<Object*>(mObject);
- }
-
- template<class T>
- inline T* getObject()
- {
- return static_cast<T*>(mObject);
- }
-
- private:
- friend class LuaObject;
-
- // Disable copy.
- Shared(const Shared& shared);
-
- ///
- /// Sharedֻڶ
- ///
- ~Shared()
- {
- delete mObject;
- }
-
- ///
- /// ͬһ̵߳lua_StateУLuaObjectEngineObjectӦһһӦLuaObject(lua runtime)ü
- /// ͻաEngine-sideüΪά̵ͬ߳lua_StateͬһEngineObjectÿLuaObjectһ
- /// Sharedʱһüͬһ߳УһEngineObjectֻһLuaObject󶨣new
- /// instanceУômCountͱEngineObjectĹ߳
- ///
- inline void Shared::retain()
- {
- ++mCount;
- }
-
- inline void Shared::release()
- {
- if (--mCount <= 0)
- delete this;
- }
-
- Object* mObject;
- int mCount;
-
- };
-
- } // namespace Lua
-} // namespace JinEngine
-
-#endif \ No newline at end of file