From ee8ef0433e36bf354a717bd4af679a0a5af2e6be Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 20 Dec 2018 18:34:50 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/common/je_lua_shared.hpp | 84 ---------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 src/lua/common/je_lua_shared.hpp (limited to 'src/lua/common/je_lua_shared.hpp') diff --git a/src/lua/common/je_lua_shared.hpp b/src/lua/common/je_lua_shared.hpp deleted file mode 100644 index 6a58ab3..0000000 --- a/src/lua/common/je_lua_shared.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef __JE_LUA_SHARED_H__ -#define __JE_LUA_SHARED_H__ - -#include -#include -#include - -#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(mObject); - } - - inline Object* getObject() - { - return static_cast(mObject); - } - - template - inline T* getObject() - { - return static_cast(mObject); - } - - private: - friend class LuaObject; - - // Disable copy. - Shared(const Shared& shared); - - /// - /// Shared只能在堆 - /// - ~Shared() - { - delete mObject; - } - - /// - /// 在同一个线程的lua_State中,LuaObject和EngineObject应该是一一对应,由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 -- cgit v1.1-26-g67d0