You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.2 KiB
121 lines
3.2 KiB
#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;
|
|
}; |