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_object.h | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/lua/common/je_lua_object.h (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 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 -- cgit v1.1-26-g67d0