summaryrefslogtreecommitdiff
path: root/Source/3rdParty/Luax/luax_class.inl
blob: fd5c1d931682bf28a2c87c75037a641ea1621ec6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

//----------------------------------------------------------------------------------------------------------------
// ӿ

///
/// Բͬͣͨ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[] = {
		{ 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);
}