summaryrefslogtreecommitdiff
path: root/Source/3rdParty/Luax/luax_class.inl
diff options
context:
space:
mode:
Diffstat (limited to 'Source/3rdParty/Luax/luax_class.inl')
-rw-r--r--Source/3rdParty/Luax/luax_class.inl76
1 files changed, 76 insertions, 0 deletions
diff --git a/Source/3rdParty/Luax/luax_class.inl b/Source/3rdParty/Luax/luax_class.inl
new file mode 100644
index 0000000..23d4c28
--- /dev/null
+++ b/Source/3rdParty/Luax/luax_class.inl
@@ -0,0 +1,76 @@
+
+//----------------------------------------------------------------------------------------------------------------
+// ӿ
+
+///
+/// ԲͬͣͨGetLuaClassName
+///
+template<class T>
+int LuaxClass::l_GetClassName(lua_State* L)
+{
+ LUAX_SETUP(L, "*");
+
+ cc8* type = T::GetLuaxClassName();
+ state.Push(type);
+ return 1;
+}
+
+//----------------------------------------------------------------------------------------------------------------
+
+///
+/// עṤ͵еԱ
+///
+template<class T>
+void LuaxClass::RegisterLuaxClass(LuaxState& state)
+{
+ luaL_Reg regTable[] = {
+ { "GetClassName", l_GetClassName<T> },
+ { NULL, NULL }
+ };
+
+ state.Register(regTable);
+}
+
+
+///
+/// ijԱעclass table
+///
+template<class T>
+void LuaxClass::RegisterLuaxFactoryClass(LuaxState& state)
+{
+ luaL_Reg regTable[] = {
+ { "Extend", l_ExtendFactory },
+ { NULL, NULL }
+ };
+
+ state.Register(regTable);
+}
+
+
+///
+/// ʵijԱעinterface table
+///
+template<class T>
+void LuaxClass::RegisterLuaxInterface(LuaxState& state)
+{
+ luaL_Reg regTable[] = {
+ { "__gc", l_GC },
+ { NULL, NULL }
+ };
+
+ state.Register(regTable);
+}
+
+
+///
+/// ijԱעclass table
+///
+template<class T>
+void LuaxClass::RegisterLuaxSingletonClass(LuaxState& state)
+{
+ luaL_Reg regTable[] = {
+ {NULL, NULL}
+ };
+
+ state.Register(regTable);
+} \ No newline at end of file