From 98c9825c49a1674f59eafb3253829ca7d5cac3c1 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 14 Jan 2019 16:40:14 +0800 Subject: *rename source file --- src/libjin-lua/common/je_lua_shared.hpp | 84 --------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 src/libjin-lua/common/je_lua_shared.hpp (limited to 'src/libjin-lua/common/je_lua_shared.hpp') 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 -#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