51 lines
1.2 KiB
C++

#ifndef VRCONFIG_H
#define VRCONFIG_H
#include "IVrConfig.h"
#include "tinyxml2.h"
#include <string>
/**
* @brief 实现IVrConfig接口的配置类
*/
class CVrConfig : public IVrConfig
{
public:
/**
* @brief 构造函数
*/
CVrConfig();
/**
* @brief 析构函数
*/
virtual ~CVrConfig();
/**
* @brief 加载配置文件
* @param filePath 配置文件路径
* @param configResult 输出参数,加载的配置结果
* @return 错误代码 (LoadConfigErrorCode): 0=成功, 负值表示错误
*/
virtual int LoadConfig(const std::string& filePath, ConfigResult& configResult) override;
/**
* @brief 保存配置文件
* @param filePath 配置文件路径
* @param configResult 配置结果
* @return 是否保存成功
*/
virtual bool SaveConfig(const std::string& filePath, ConfigResult& configResult) override;
/**
* @brief 设置配置改变通知回调
* @param notify 通知接口指针
*/
virtual void SetConfigChangeNotify(IVrConfigChangeNotify* notify) override;
private:
IVrConfigChangeNotify* m_pNotify = nullptr; // 配置改变通知回调
};
#endif // VRCONFIG_H