//---------------------------------------------------------------------------------------------------------------- // 接口 /// /// 对不同类型,通过调用GetLuaClassName获得类型名 /// template int LuaxClass::l_GetClassName(lua_State* L) { LUAX_SETUP(L, "*"); cc8* type = T::GetLuaxClassName(); state.Push(type); return 1; } //---------------------------------------------------------------------------------------------------------------- /// /// 注册工厂和单例共有的类成员 /// template void LuaxClass::RegisterLuaxClass(LuaxState& state) { luaL_Reg regTable[] = { { "GetClassName", l_GetClassName }, { NULL, NULL } }; state.Register(regTable); } /// /// 工厂类的成员,注册在class table /// template void LuaxClass::RegisterLuaxFactoryClass(LuaxState& state) { luaL_Reg regTable[] = { { NULL, NULL } }; state.Register(regTable); } /// /// 工厂实例的成员,注册在interface table /// template void LuaxClass::RegisterLuaxInterface(LuaxState& state) { luaL_Reg regTable[] = { { "__gc", l_GC }, { NULL, NULL } }; state.Register(regTable); } /// /// 单例类的成员,注册在class table /// template void LuaxClass::RegisterLuaxSingletonClass(LuaxState& state) { luaL_Reg regTable[] = { {NULL, NULL} }; state.Register(regTable); }