From 8cd03a53878b9d67eb4b13fb546dbd989d8217e2 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 4 Dec 2018 10:13:03 +0800 Subject: *proxy->lua object --- src/lua/common/je_lua.cpp | 10 +++---- src/lua/common/je_lua.h | 4 +-- src/lua/common/je_lua_object.cpp | 32 ++++++++++++++++++++++ src/lua/common/je_lua_object.h | 57 ++++++++++++++++++++++++++++++++++++++++ src/lua/common/je_lua_proxy.cpp | 32 ---------------------- src/lua/common/je_lua_proxy.h | 57 ---------------------------------------- 6 files changed, 96 insertions(+), 96 deletions(-) create mode 100644 src/lua/common/je_lua_object.cpp create mode 100644 src/lua/common/je_lua_object.h delete mode 100644 src/lua/common/je_lua_proxy.cpp delete mode 100644 src/lua/common/je_lua_proxy.h (limited to 'src/lua/common') diff --git a/src/lua/common/je_lua.cpp b/src/lua/common/je_lua.cpp index 020599d..a56ae4f 100644 --- a/src/lua/common/je_lua.cpp +++ b/src/lua/common/je_lua.cpp @@ -15,17 +15,17 @@ namespace JinEngine static const char* Jin_Lua_Reference_Table = "Jin_Reference_Table"; - Proxy* luax_newinstance(lua_State* L, const char* type, SharedBase* shared) + LuaObject* luax_newinstance(lua_State* L, const char* type, SharedBase* shared) { - Proxy* proxy = static_cast(luax_newinstance(L, type, sizeof(Proxy))); - if (shared) proxy->bind(shared); + LuaObject* luaObj = static_cast(luax_newinstance(L, type, sizeof(LuaObject))); + if (shared) luaObj->bind(shared); luax_getobjectstable(L); - // Add to objects_table, like objects_table[shared] = proxy + // Add to objects_table, like objects_table[shared] = luaObj luax_pushlightuserdata(L, shared); luax_pushvalue(L, -3); luax_settable(L, -3); luax_pop(L, 1); // Pop objects table. - return proxy; + return luaObj; } int luax_getobject(lua_State* L, SharedBase* shared) diff --git a/src/lua/common/je_lua.h b/src/lua/common/je_lua.h index 1396970..b73ac3d 100644 --- a/src/lua/common/je_lua.h +++ b/src/lua/common/je_lua.h @@ -7,7 +7,7 @@ #include "luax/luax.h" #include "je_lua_shared.hpp" -#include "je_lua_proxy.h" +#include "je_lua_object.h" #include "je_lua_reference.h" namespace JinEngine @@ -20,7 +20,7 @@ namespace JinEngine /// /// /// - Proxy* luax_newinstance(lua_State* L, const char* type, SharedBase* shared); + LuaObject* luax_newinstance(lua_State* L, const char* type, SharedBase* shared); /// /// Access lua object by object pointer. diff --git a/src/lua/common/je_lua_object.cpp b/src/lua/common/je_lua_object.cpp new file mode 100644 index 0000000..ce71283 --- /dev/null +++ b/src/lua/common/je_lua_object.cpp @@ -0,0 +1,32 @@ +#include "je_lua.h" +#include "je_lua_object.h" + +namespace JinEngine +{ + namespace Lua + { + + void LuaObject::bind(SharedBase* s) + { + if (s == nullptr) + return; + shared = s; + shared->retain(); + } + + void LuaObject::release() + { + if (shared != nullptr) + { + shared->release(); + shared = nullptr; + } + } + + const char* LuaObject::getObjectType() + { + return shared->getType(); + } + + } +} \ No newline at end of file diff --git a/src/lua/common/je_lua_object.h b/src/lua/common/je_lua_object.h new file mode 100644 index 0000000..bd3ddd6 --- /dev/null +++ b/src/lua/common/je_lua_object.h @@ -0,0 +1,57 @@ +#ifndef __JIN_COMMON_PROXY_H__ +#define __JIN_COMMON_PROXY_H__ + +#include "je_lua_shared.hpp" + +struct lua_State; + +namespace JinEngine +{ + namespace Lua + { + + class LuaObject + { + public: + /// + /// Set lua_State and object it bind. + /// + void bind(SharedBase* s); + + void release(); + + const char* getObjectType(); + + template + Shared& getShared() + { + return *(Shared*)shared; + } + + SharedBase* getSharedBase() + { + return shared; + } + + /// + /// For convenience. + /// + template + T* getObject() + { + Shared& shared = getShared(); + return shared.getObject(); + } + + private: + /// + /// + /// + SharedBase* shared; + + }; + + } // namespace Lua +} // namespace JinEngine + +#endif // __JIN_COMMON_PROXY_H__ \ No newline at end of file diff --git a/src/lua/common/je_lua_proxy.cpp b/src/lua/common/je_lua_proxy.cpp deleted file mode 100644 index b892e67..0000000 --- a/src/lua/common/je_lua_proxy.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "je_lua.h" -#include "je_lua_proxy.h" - -namespace JinEngine -{ - namespace Lua - { - - void Proxy::bind(SharedBase* s) - { - if (s == nullptr) - return; - shared = s; - shared->retain(); - } - - void Proxy::release() - { - if (shared != nullptr) - { - shared->release(); - shared = nullptr; - } - } - - const char* Proxy::getObjectType() - { - return shared->getType(); - } - - } -} \ No newline at end of file diff --git a/src/lua/common/je_lua_proxy.h b/src/lua/common/je_lua_proxy.h deleted file mode 100644 index 517e209..0000000 --- a/src/lua/common/je_lua_proxy.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __JIN_COMMON_PROXY_H__ -#define __JIN_COMMON_PROXY_H__ - -#include "je_lua_shared.hpp" - -struct lua_State; - -namespace JinEngine -{ - namespace Lua - { - - class Proxy - { - public: - /// - /// Set lua_State and object it bind. - /// - void bind(SharedBase* s); - - void release(); - - const char* getObjectType(); - - template - Shared& getShared() - { - return *(Shared*)shared; - } - - SharedBase* getSharedBase() - { - return shared; - } - - /// - /// For convenience. - /// - template - T* getObject() - { - Shared& shared = getShared(); - return shared.getObject(); - } - - private: - /// - /// - /// - SharedBase* shared; - - }; - - } // namespace Lua -} // namespace JinEngine - -#endif // __JIN_COMMON_PROXY_H__ \ No newline at end of file -- cgit v1.1-26-g67d0