XNSim/XNCore_Win/XNConfigManager/XNConfigManager.h

98 lines
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file XNScenarioDescriptor.h
* @author jinchao
* @brief 运行环境描述管理器类头文件
* @version 1.0
* @date 2024-11-07
*
* @copyright Copyright (c) 2024 XN
*
*/
#pragma once
#include <XNBaseFrameObject/XNBaseFrameObject.h>
namespace XNSim {
struct XNConfigManagerPrivate;
/**
* @brief 构型管理器类
* @details 主要负责解析构型配置来设置系统运行参数。
*/
class XNConfigManager : public XNBaseFrameObject {
XN_METATYPE(XNConfigManager, XNBaseFrameObject)
XN_DECLARE_PRIVATE(XNConfigManager)
public:
/**
* @brief 构型管理器类默认构造函数
*/
XNConfigManager();
/**
* @brief 构型管理器类析构函数
*/
virtual ~XNConfigManager();
protected:
/**
* @brief 构型管理器类带参构造函数
* @param p:私有结构体指针
* @details 子类构造时调用此构造函数,传入子类的私有结构体指针
*/
XNConfigManager(PrivateType *p);
public:
/**
* @brief 获取构型名称
* @return const XNString&: 构型名称
*/
const XN_STRING &GetSimName();
/**
* @brief 设置构型名称
* @param simName: XNString类型构型名称
*/
void SetSimName(const XN_STRING &simName);
public:
/**
* @brief 初始化构型管理器
* @return true: 初始化成功
* @return false: 初始化失败
* @details 构型管理器的初始化接口函数
*/
virtual XN_BOOL Initialize() override;
/**
* @brief 仿真运行前最后处理
* @note 构型管理器在系统运行开始前的准备工作
*/
virtual XN_BOOL PrepareForExecute() override;
/**
* @brief 构型配置文件解析
* @param XmlPath: std::string类型构型配置文件解析路径
* @param initialType: uint32_t类型初始化类型
* @return true: 解析成功
* @return false: 解析失败
*/
virtual XN_BOOL AnalysisScenarioXml(const XN_STRING &XmlPath,
XN_UINT32 initialType);
private:
/**
* @brief 解析构型配置文件
* @param XmlPath: std::string类型构型配置文件解析路径
* @return true: 解析成功
* @return false: 解析失败
*/
XN_BOOL ParseScenarioXml(const XN_STRING &XmlPath);
/**
* @brief 解析构型配置文件
* @param ConfigID: std::string类型构型配置文件在数据库中的ID
* @return true: 解析成功
* @return false: 解析失败
*/
XN_BOOL ParseConfig(const XN_STRING &ConfigID);
};
} // namespace XNSim