diff options
Diffstat (limited to 'Runtime/Scripting/LuaBindClass.inc')
-rw-r--r-- | Runtime/Scripting/LuaBindClass.inc | 98 |
1 files changed, 49 insertions, 49 deletions
diff --git a/Runtime/Scripting/LuaBindClass.inc b/Runtime/Scripting/LuaBindClass.inc index faa276d..e9c7b8b 100644 --- a/Runtime/Scripting/LuaBindClass.inc +++ b/Runtime/Scripting/LuaBindClass.inc @@ -7,11 +7,11 @@ namespace LuaBind /// 对不同类型,通过调用GetLuaClassName获得类型名,如果是派生类,GetClassName会被覆盖,指向luax_c_getupvalue。 /// template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::_GetClassName(lua_State* L) + int NativeClass<TYPE, BASE>::_GetClassName(lua_State* L) { LUA_BIND_SETUP(L, "*"); - cc8* type = TYPE::GetLuaBindClassName(); + cc8* type = TYPE::GetClassName(); state.Push(type); return 1; } @@ -22,7 +22,7 @@ namespace LuaBind /// 注册工厂和单例共有的类成员 /// template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::RegisterLuaBindClassShared(LuaBindState& state) + void NativeClass<TYPE, BASE>::RegisterClassShared(State& state) { luaL_Reg regTable[] = { { "GetClass", _GetClass }, @@ -37,7 +37,7 @@ namespace LuaBind /// 工厂类的成员,注册在class table /// template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::RegisterLuaBindFactoryClass(LuaBindState& state) + void NativeClass<TYPE, BASE>::RegisterFactoryClass(State& state) { luaL_Reg regTable[] = { { "GetRefTable", _GetRefTable }, @@ -51,7 +51,7 @@ namespace LuaBind /// 单例类的成员,注册在class table /// template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::RegisterLuaBindSingletonClass(LuaBindState& state) + void NativeClass<TYPE, BASE>::RegisterSingletonClass(State& state) { luaL_Reg regTable[] = { { NULL, NULL } @@ -61,7 +61,7 @@ namespace LuaBind } template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::PushLuaBindClassTable(LuaBindState& state) + void NativeClass<TYPE, BASE>::PushClassTable(State& state) { assert(mClassTable); @@ -69,13 +69,13 @@ namespace LuaBind } template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::SetLuaBindClassTableRef(LuaBindState& state, int idx) + void NativeClass<TYPE, BASE>::SetClassTableRef(State& state, int idx) { mClassTable.SetRef(state, idx); } template<class TYPE, class BASE> - LuaBindNativeClass<TYPE, BASE>::LuaBindNativeClass() + NativeClass<TYPE, BASE>::NativeClass() : mWatchDog() #if LUA_BIND_PROFILER , mSafer(false) @@ -84,13 +84,13 @@ namespace LuaBind } template<class TYPE, class BASE> - LuaBindNativeClass<TYPE, BASE>::~LuaBindNativeClass() + NativeClass<TYPE, BASE>::~NativeClass() { } #if LUA_BIND_PROFILER template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::operator delete(void* pdead, size_t size) + void NativeClass<TYPE, BASE>::operator delete(void* pdead, size_t size) { if (pdead == nullptr) return; @@ -102,13 +102,13 @@ namespace LuaBind #endif template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::Retain() + void NativeClass<TYPE, BASE>::Retain() { ++mWatchDog.mNativeRef; } template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::Release() + void NativeClass<TYPE, BASE>::Release() { if (mWatchDog.mNativeRef > 0) --mWatchDog.mNativeRef; @@ -123,11 +123,11 @@ namespace LuaBind template<class TYPE, class BASE> template<typename U> - void LuaBindNativeClass<TYPE, BASE>::LuaBindRetain(LuaBindState& state, U* userdata) + void NativeClass<TYPE, BASE>::Retain(State& state, U* userdata) { - if (PushLuaBindRefTable(state)) + if (PushRefTable(state)) { - if (userdata->PushLuaBindUserdata(state)) + if (userdata->PushUserdata(state)) { lua_pushvalue(state, -1); // copy the userdata lua_gettable(state, -3); // get the count (or nil) @@ -141,11 +141,11 @@ namespace LuaBind template<class TYPE, class BASE> template<typename U> - void LuaBindNativeClass<TYPE, BASE>::LuaBindRelease(LuaBindState& state, U* userdata) + void NativeClass<TYPE, BASE>::Release(State& state, U* userdata) { - if (PushLuaBindRefTable(state)) + if (PushRefTable(state)) { - if (userdata->PushLuaBindUserdata(state)) + if (userdata->PushUserdata(state)) { lua_pushvalue(state, -1); // copy the userdata lua_gettable(state, -3); // get the count (or nil) @@ -176,9 +176,9 @@ namespace LuaBind } template<class TYPE, class BASE> - bool LuaBindNativeClass<TYPE, BASE>::PushLuaBindUserdata(LuaBindState& state) + bool NativeClass<TYPE, BASE>::PushUserdata(State& state) { - assert(!TYPE::IsLuaBindClassSingleton()); + assert(!TYPE::IsClassSingleton()); if (!mUserdata) { BindToLua(state); @@ -188,10 +188,10 @@ namespace LuaBind } template<class TYPE, class BASE> - bool LuaBindNativeClass<TYPE, BASE>::PushLuaBindMemberTable(LuaBindState& state) + bool NativeClass<TYPE, BASE>::PushMemberTable(State& state) { int top = state.GetTop(); - if (this->PushLuaBindUserdata(state)) + if (this->PushUserdata(state)) { if (lua_getmetatable(state, -1)) // ref table { @@ -209,10 +209,10 @@ namespace LuaBind } template<class TYPE, class BASE> - bool LuaBindNativeClass<TYPE, BASE>::PushLuaBindRefTable(LuaBindState& state) + bool NativeClass<TYPE, BASE>::PushRefTable(State& state) { // Singleton - if (TYPE::IsLuaBindClassSingleton()) + if (TYPE::IsClassSingleton()) { if (!this->mSingletonRefTable) { lua_newtable(state); @@ -226,7 +226,7 @@ namespace LuaBind // Factory else { - if (this->PushLuaBindUserdata(state)) + if (this->PushUserdata(state)) { if (lua_getmetatable(state, -1)) { @@ -248,10 +248,10 @@ namespace LuaBind /// BindToLua只会在第一次注册给Lua虚拟机时调用。 /// template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::BindToLua(LuaBindState& state) + void NativeClass<TYPE, BASE>::BindToLua(State& state) { // 单例不能绑定userdata - assert(!TYPE::IsLuaBindClassSingleton()); + assert(!TYPE::IsClassSingleton()); assert(!mUserdata); /// @@ -264,7 +264,7 @@ namespace LuaBind lua_newtable(state); // ref table,无法在lua处访问,用来管理C对象的生命周期 lua_newtable(state); // member table,lua中创建的对象成员都保存在这里 - PushLuaBindClassTable(state); // class table + PushClassTable(state); // class table // stack: // -1: class table @@ -310,13 +310,13 @@ namespace LuaBind /// 成员引用管理 /// template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::SetLuaBindMemberRef(LuaBindState& state, LuaBindMemberRef& memRef, int idx) + void NativeClass<TYPE, BASE>::SetMemberRef(State& state, MemberRef& memRef, int idx) { - ClearLuaBindMemberRef(state, memRef); + ClearMemberRef(state, memRef); if (!lua_isnil(state, idx)) { idx = state.AbsIndex(idx); - if (PushLuaBindRefTable(state)) + if (PushRefTable(state)) { lua_pushvalue(state, idx); memRef.refID = luaL_ref(state, -2); @@ -326,11 +326,11 @@ namespace LuaBind } template<class TYPE, class BASE> - bool LuaBindNativeClass<TYPE, BASE>::PushLuaBindMemberRef(LuaBindState& state, LuaBindMemberRef& memRef) + bool NativeClass<TYPE, BASE>::PushMemberRef(State& state, MemberRef& memRef) { if (memRef) { - if (PushLuaBindRefTable(state)) + if (PushRefTable(state)) { lua_rawgeti(state, -1, memRef.refID); lua_replace(state, -2); // ref table @@ -346,9 +346,9 @@ namespace LuaBind } template<class TYPE, class BASE> - bool LuaBindNativeClass<TYPE, BASE>::PushLuaBindMemberRef(LuaBindState& state, int refID) + bool NativeClass<TYPE, BASE>::PushMemberRef(State& state, int refID) { - if (PushLuaBindRefTable(state)) + if (PushRefTable(state)) { lua_rawgeti(state, -1, refID); lua_replace(state, -2); // ref table @@ -362,11 +362,11 @@ namespace LuaBind } template<class TYPE, class BASE> - void LuaBindNativeClass<TYPE, BASE>::ClearLuaBindMemberRef(LuaBindState& state, LuaBindMemberRef& memRef) + void NativeClass<TYPE, BASE>::ClearMemberRef(State& state, MemberRef& memRef) { if (memRef) { - if (PushLuaBindRefTable(state)) + if (PushRefTable(state)) { luaL_unref(state, -1, memRef.refID); state.Pop(); // ref table @@ -381,7 +381,7 @@ namespace LuaBind /// 释放工厂创建的实例 /// template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::__gc(lua_State* L) + int NativeClass<TYPE, BASE>::__gc(lua_State* L) { LUA_BIND_STATE(L); @@ -389,7 +389,7 @@ namespace LuaBind assert(self); #if LUA_BIND_PROFILER - std::cout << "LuaBind: GC<" << TYPE::GetLuaBindClassName() << ">\n"; + std::cout << ": GC<" << TYPE::GetClassName() << ">\n"; #endif if(self->mWatchDog.mVMRef > 0) @@ -405,7 +405,7 @@ namespace LuaBind /// 地址 类名 /// template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::__tostring(lua_State* L) + int NativeClass<TYPE, BASE>::__tostring(lua_State* L) { // params: // 1: userdata @@ -424,7 +424,7 @@ namespace LuaBind } else { - classname = TYPE::GetLuaBindClassName(); + classname = TYPE::GetClassName(); } lua_pushfstring(L, "%s: %p", classname, self); return 1; @@ -438,7 +438,7 @@ namespace LuaBind /// native实体创建后可以使用__init进行初始化,派生类拥有和基类一样的New参数列表,且native对象是一样的类型。 /// template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::_ExtendFactory(lua_State* L) + int NativeClass<TYPE, BASE>::_ExtendFactory(lua_State* L) { // upvalues: // 1: base class @@ -490,7 +490,7 @@ namespace LuaBind } template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::_ExtendSingleton(lua_State* L) + int NativeClass<TYPE, BASE>::_ExtendSingleton(lua_State* L) { // upvalues: // 1: base class @@ -537,7 +537,7 @@ namespace LuaBind #endif /*LUA_BIND_ENABLE_NATIVE_EXTEND*/ template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::_GetClass(lua_State* L) + int NativeClass<TYPE, BASE>::_GetClass(lua_State* L) { LUA_BIND_STATE(L); if (!mClassTable) @@ -548,18 +548,18 @@ namespace LuaBind } template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::_GetRefTable(lua_State* L) + int NativeClass<TYPE, BASE>::_GetRefTable(lua_State* L) { LUA_BIND_STATE(L); TYPE* self = state.GetUserdata<TYPE>(1); - bool success = self->PushLuaBindRefTable(state); + bool success = self->PushRefTable(state); if (!success) lua_pushnil(L); return 1; } template<class TYPE, class BASE> - int LuaBindNativeClass<TYPE, BASE>::_New(lua_State* L) + int NativeClass<TYPE, BASE>::_New(lua_State* L) { LUA_BIND_STATE(L); @@ -631,7 +631,7 @@ namespace LuaBind return 0; } - template<class TYPE, class BASE> LuaBindStrongRef LuaBindNativeClass<TYPE, BASE>::mClassTable; // class table - template<class TYPE, class BASE> LuaBindStrongRef LuaBindNativeClass<TYPE, BASE>::mSingletonRefTable; // 单例 + template<class TYPE, class BASE> StrongRef NativeClass<TYPE, BASE>::mClassTable; // class table + template<class TYPE, class BASE> StrongRef NativeClass<TYPE, BASE>::mSingletonRefTable; // 单例 }
\ No newline at end of file |