43 lines
1.5 KiB
C++
43 lines
1.5 KiB
C++
#pragma once
|
||
|
||
/************************************************************************
|
||
|
||
基于CustomLuaClass类实现方式的CLVaraint导出类
|
||
|
||
已测试全部功能可以使用,但此代码仅用作对CustomLuaClass的实现演示。
|
||
CustomLuaClass在设计思想上不够完善,随可以使用,但仍有不足。
|
||
|
||
***********************************************************************/
|
||
class CLuaVariantClass :
|
||
public CCustomLuaClass<CCLVariant, CLuaVariantClass>
|
||
{
|
||
public:
|
||
typedef CCustomLuaClass<CCLVariant, CLuaVariantClass> Inherited;
|
||
|
||
protected:
|
||
CCLVariant* create(lua_State *L);
|
||
void destroy(lua_State *L, CCLVariant *ptr);
|
||
int get(lua_State *L, CCLVariant *pInst);
|
||
int set(lua_State *L, CCLVariant *pInst);
|
||
int eq(lua_State *L, CCLVariant *pInst);
|
||
int add(lua_State *L, CCLVariant *pInst);
|
||
int sub(lua_State *L, CCLVariant *pInst);
|
||
int mul(lua_State *L, CCLVariant *pInst);
|
||
int div(lua_State *L, CCLVariant *pInst);
|
||
int mod(lua_State *L, CCLVariant *pInst);
|
||
int unm(lua_State *L, CCLVariant *pInst);
|
||
int len(lua_State *L, CCLVariant *pInst);
|
||
int lt(lua_State *L, CCLVariant *pInst);
|
||
int le(lua_State *L, CCLVariant *pInst);
|
||
int concat(lua_State *L, CCLVariant *pInst);
|
||
int testCall(lua_State *L, CCLVariant *pInst);
|
||
private:
|
||
void setVarFromTable(lua_State *L, CCLVariant *pVar, int vidx = -1);
|
||
void setVarMember(lua_State *L, CCLVariant *pVar, const char* sName, int vidx = -1);
|
||
|
||
private:
|
||
static const FuncCall fnList[];
|
||
public:
|
||
CLuaVariantClass();
|
||
};
|