/** * @file XNScenarioDescriptor.h * @author jinchao * @brief 运行环境描述管理器类头文件 * @version 1.0 * @date 2024-11-07 * * @copyright Copyright (c) 2024 XN * */ #pragma once #include 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