diff options
Diffstat (limited to 'src/libjin-lua/common/l_shared.hpp')
-rw-r--r-- | src/libjin-lua/common/l_shared.hpp | 140 |
1 files changed, 70 insertions, 70 deletions
diff --git a/src/libjin-lua/common/l_shared.hpp b/src/libjin-lua/common/l_shared.hpp index 6a58ab3..11f28b3 100644 --- a/src/libjin-lua/common/l_shared.hpp +++ b/src/libjin-lua/common/l_shared.hpp @@ -9,76 +9,76 @@ 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ֻһLuaObjectnew - /// instanceУômCountͱEngineObjectĹ߳ - /// - inline void Shared::retain() - { - ++mCount; - } - - inline void Shared::release() - { - if (--mCount <= 0) - delete this; - } - - Object* mObject; - int mCount; - - }; - - } // namespace Lua + 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ֻһLuaObjectnew + /// 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 |