diff options
Diffstat (limited to 'src/lua/common/je_lua_object.h')
-rw-r--r-- | src/lua/common/je_lua_object.h | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/src/lua/common/je_lua_object.h b/src/lua/common/je_lua_object.h index 296ee03..a81f57c 100644 --- a/src/lua/common/je_lua_object.h +++ b/src/lua/common/je_lua_object.h @@ -17,43 +17,33 @@ namespace JinEngine /// /// Set lua_State and object it bind. /// - void bind(SharedBase* obj); + void bind(Shared* obj); void release(); const char* getObjectType(); - SharedBase* getShared(); + Shared* getShared(); template<class T> - Shared<T>& getShared() - { - return *(Shared<T>*)object; - } - - /// - /// For convenience. - /// - template<class T> T* getObject() { - Shared<T>& shared = getShared<T>(); - return shared.getObject(); + return shared->getObject<T>(); } - void setDependency(uint key, SharedBase* shared); + void setDependency(uint key, Shared* shared); void removeDependency(uint key); - void removeDependency(SharedBase* dep); + void removeDependency(Shared* dep); bool isDependOn(uint key); - bool isDependOn(SharedBase* shared); + bool isDependOn(Shared* shared); void clearDependencies(); - SharedBase* getDependency(uint key); + Shared* getDependency(uint key); int getDependenciesCount(); @@ -61,11 +51,11 @@ namespace JinEngine // Lua state object. ////////////////////////////////////////////////////////////////////////////////////////////////////// - using DepsMap = std::map<uint, SharedBase*>; + using DepsMap = std::map<uint, Shared*>; lua_State* state; - SharedBase* object; + Shared* shared; DepsMap* dependencies; |