/** * @file XNFramework.h * @author jinchao * @brief 框架类 * @version 1.0 * @date 2025-01-08 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include "XNObject.h" struct XNFrameworkPrivate; /** * @brief 框架类 */ class XNCORE_EXPORT XNFramework : public XNObject { /** * @brief 宏定义,用于禁用拷贝构造函数 */ XN_METATYPE(XNFramework, XNObject) /** * @brief 宏定义,用于声明私有数据成员 */ XN_DECLARE_PRIVATE(XNFramework) public: /** * @brief 构造函数 * @param parent 父对象 */ XNFramework(); /** * @brief 析构函数 */ virtual ~XNFramework(); protected: /** * @brief 构造函数 * @param p 私有数据成员 */ XNFramework(PrivateType *p); public: /** * @brief 获取DDS管理器 * @return DDS管理器 */ XNDDSManagerPtr GetDDSManager(); /** * @brief 获取事件管理器 * @return 事件管理器 */ XNEventManagerPtr GetEventManager(); /** * @brief 获取模型管理器 * @return 模型管理器 */ XNModelManagerPtr GetModelManager(); /** * @brief 获取场景管理器 * @return 场景管理器 */ XNScenarioManagerPtr GetScenarioManager(); /** * @brief 获取服务管理器 * @return 服务管理器 */ XNServiceManagerPtr GetServiceManager(); /** * @brief 获取线程管理器 * @return 线程管理器 */ XNThreadManagerPtr GetThreadManager(); /** * @brief 获取时间管理器 * @return 时间管理器 */ XNTimeManagerPtr GetTimeManager(); /** * @brief 获取工作路径 * @return 工作路径 */ std::string GetWorkPath(); /** * @brief 设置工作路径 * @param workPath 工作路径 */ void SetWorkPath(const std::string &workPath); /** * @brief 获取模型库路径 * @return 模型库路径 */ std::string GetModelPath(); /** * @brief 设置模型库路径 * @param modelPath 模型库路径 */ void SetModelPath(const std::string &modelPath); /** * @brief 获取服务库路径 * @return 服务库路径 */ std::string GetServicePath(); /** * @brief 设置服务库路径 * @param servicePath 服务库路径 */ void SetServicePath(const std::string &servicePath); /** * @brief 获取CPU亲和性 * @return CPU亲和性 */ uint32_t GetCpuAffinity(); /** * @brief 设置CPU亲和性 * @param cpuAffinity CPU亲和性 */ void SetCpuAffinity(uint32_t cpuAffinity); /** * @brief 设置场景XML * @param scenarioXml 场景XML */ void SetScenarioXml(const std::string &scenarioXml); /** * @brief 准备执行 * @return true: 准备成功 * @return false: 准备失败 */ bool PrepareForExecute(); /** * @brief 仿真控制 * @param objectId 对象ID * @param cmd 命令 */ void SimControl(uint32_t objectId, SimControlCmd cmd); /** * @brief 初始化 * @param initialType 初始化类型 * @return true: 初始化成功 * @return false: 初始化失败 */ bool Initialize(uint32_t initialType); };