#pragma once #include "IVariantProcessor.h" class IXLuaParamCallback { public: virtual ~IXLuaParamCallback() = default; virtual unsigned int pushParam(IVariantProcessor* proc) = 0; virtual void getReturnValues(unsigned int count, IVariantProcessor* proc) = 0; }; class IXLuaValueObject { public: virtual ~IXLuaValueObject() = default; virtual void setCount(unsigned int count) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, bool value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, short value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, int value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, long long value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, float value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, double value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, char value) = 0; virtual void setValue(unsigned int objIndex, unsigned int varIndex, const char* value) = 0; }; /// @Brief Lua管理接口类 class IXLua { public: // @function 析构 // virtual ~IXLua() {} // @function 初始化 // // @return 成功返回true virtual bool init() = 0; // @function 释放对象 // virtual void release() = 0; // @function 加载脚本文件 // // @param file 脚本文件名 // @param isisRun 是否要运行文件 // @return 成功返回true virtual bool loadFile(const char* file, bool isRun = true) = 0; // @function 运行脚本文件 // // @return 成功返回true // @note 先要加载文件,且没有运行过 // @see loadFile方法 virtual bool runFile() = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableChar(const char* name, char& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableBool(const char* name, bool& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableShort(const char* name, short& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableInt(const char* name, int& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableInt64(const char* name, long long& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableFloat(const char* name, float& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableDouble(const char* name, double& outValue) = 0; // @function 获取脚本全局变量 // // @param name 变量名 // @param bufLen 输出缓冲的长度 // @param outValue 输出值 // @return 是否成功 virtual bool getLuaVariableString(const char* name, size_t bufLen, char* outValue) = 0; // 调用函数 virtual bool callFunction(const char* funName, unsigned int retValueCount, IXLuaParamCallback* callback) = 0; };