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