From e1bc01ce6948283930f7f29a640a91a27a29c997 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 4 Dec 2018 14:10:29 +0800 Subject: =?UTF-8?q?*=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/common/je_lua_object.h | 49 ++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 14 deletions(-) (limited to 'src/lua/common/je_lua_object.h') diff --git a/src/lua/common/je_lua_object.h b/src/lua/common/je_lua_object.h index bd3ddd6..1d74de9 100644 --- a/src/lua/common/je_lua_object.h +++ b/src/lua/common/je_lua_object.h @@ -1,6 +1,7 @@ -#ifndef __JIN_COMMON_PROXY_H__ -#define __JIN_COMMON_PROXY_H__ +#ifndef __JIN_COMMON_OBJECT_H__ +#define __JIN_COMMON_OBJECT_H__ +#include "libjin/jin.h" #include "je_lua_shared.hpp" struct lua_State; @@ -16,21 +17,18 @@ namespace JinEngine /// /// Set lua_State and object it bind. /// - void bind(SharedBase* s); + void bind(SharedBase* obj); void release(); const char* getObjectType(); + SharedBase* getSharedBase(); + template Shared& getShared() { - return *(Shared*)shared; - } - - SharedBase* getSharedBase() - { - return shared; + return *(Shared*)object; } /// @@ -43,15 +41,38 @@ namespace JinEngine return shared.getObject(); } + void setDependency(uint key, SharedBase* shared); + + void removeDependency(uint key); + + void removeDependency(SharedBase* dep); + + bool isDependOn(uint key); + + bool isDependOn(SharedBase* shared); + + void clearDependencies(); + + SharedBase* getDependency(uint key); + + int getDependenciesCount(); + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + // + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + lua_State* state; + + SharedBase* object; + + std::map* dependencies; + private: - /// - /// - /// - SharedBase* shared; + using DepsMap = std::map; }; } // namespace Lua } // namespace JinEngine -#endif // __JIN_COMMON_PROXY_H__ \ No newline at end of file +#endif // __JIN_COMMON_OBJECT_H__ \ No newline at end of file -- cgit v1.1-26-g67d0