diff options
author | chai <chaifix@163.com> | 2018-11-11 20:18:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-11-11 20:18:26 +0800 |
commit | 7c2f33bdf37de7acf9b0728a115377081344db1c (patch) | |
tree | cd82766dd4d1d84229ae610e69225bb48b3001b9 /src/lua/common/je_lua_proxy.h | |
parent | e92caa97329016d012b46b9d37e1b2c3b613a8f2 (diff) |
*格式化
Diffstat (limited to 'src/lua/common/je_lua_proxy.h')
-rw-r--r-- | src/lua/common/je_lua_proxy.h | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/lua/common/je_lua_proxy.h b/src/lua/common/je_lua_proxy.h index 56e5fee..b476aa6 100644 --- a/src/lua/common/je_lua_proxy.h +++ b/src/lua/common/je_lua_proxy.h @@ -1,6 +1,8 @@ #ifndef __JIN_COMMON_PROXY_H #define __JIN_COMMON_PROXY_H +#include "../luax.h" + #include "je_lua_shared.hpp" namespace JinEngine @@ -11,56 +13,61 @@ namespace JinEngine class Proxy { public: - void bind(SharedBase* ref) + void bind(SharedBase* shared) { - if (ref == nullptr) + if (shared == nullptr) return; - shared = ref; + reference = shared; } void release() { - if (shared != nullptr) + if (reference != nullptr) { - shared->release(); - shared = nullptr; + reference->release(); + reference = nullptr; } } void retain() { - if (shared != nullptr) - shared->retain(); + if (reference != nullptr) + reference->retain(); } void setUserdata(void* data) { - if (shared != nullptr) - shared->setUserdata(data); + if (reference != nullptr) + reference->setUserdata(data); } template<class T> Shared<T>& getShared() { - return *(static_cast<Shared<T>*>(shared)); + return *(Shared<T>*) reference; } template<class T> T* getObject() { - Shared<T>& ref = getShared<T>(); - return ref.getObject(); + Shared<T>& shared = getShared<T>(); + return shared.getObject(); } const char* getObjectType() { - return shared->type; + return reference->type; } - SharedBase* shared; + SharedBase* reference; }; + inline Proxy* luax_newinstance(lua_State* L, const char* type) + { + return static_cast<Proxy*>(luax_newinstance(L, type, sizeof(Proxy))); + } + } // namespace Lua } // namespace JinEngine |