/** * @file XNFramework.h * @author jinchao * @brief 框架类 * @version 1.0 * @date 2025-01-08 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include "XNObject/XNObject.h" namespace XNSim { 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 构型管理器 */ XNConfigManagerPtr GetConfigManager(); /** * @brief 获取服务管理器 * @return 服务管理器 */ XNServiceManagerPtr GetServiceManager(); /** * @brief 获取线程管理器 * @return 线程管理器 */ XNThreadManagerPtr GetThreadManager(); /** * @brief 获取时间管理器 * @return 时间管理器 */ XNTimeManagerPtr GetTimeManager(); /** * @brief 获取工作路径 * @return 工作路径 */ XN_STRING GetWorkPath(); /** * @brief 设置工作路径 * @param workPath 工作路径 */ void SetWorkPath(const XN_STRING &workPath); /** * @brief 获取模型库路径 * @return 模型库路径 */ XN_STRING GetModelPath(); /** * @brief 设置模型库路径 * @param modelPath 模型库路径 */ void SetModelPath(const XN_STRING &modelPath); /** * @brief 获取服务库路径 * @return 服务库路径 */ XN_STRING GetServicePath(); /** * @brief 设置服务库路径 * @param servicePath 服务库路径 */ void SetServicePath(const XN_STRING &servicePath); /** * @brief 获取CPU亲和性 * @return CPU亲和性 */ XN_UINT32 GetCpuAffinity(); /** * @brief 设置CPU亲和性 * @param cpuAffinity CPU亲和性 */ void SetCpuAffinity(XN_UINT32 cpuAffinity); /** * @brief 设置场景XML * @param scenarioXml 场景XML */ void SetScenarioXml(const XN_STRING &scenarioXml); /** * @brief 准备执行 * @return true: 准备成功 * @return false: 准备失败 */ bool PrepareForExecute(); /** * @brief 仿真控制 * @param objectId 对象ID * @param cmd 命令 */ void SimControl(XN_UINT32 objectId, SimControlCmd cmd); /** * @brief 初始化 * @param initialType 初始化类型 * @return true: 初始化成功 * @return false: 初始化失败 */ XN_BOOL Initialize(XN_UINT32 initialType); }; } // namespace XNSim