Files
mir_server/sdk/srvlib/include/LuaVariantClass.h

43 lines
1.5 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#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();
};