170 lines
2.9 KiB
C++
170 lines
2.9 KiB
C++
/**
|
|
* @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 准备执行
|
|
*/
|
|
void PrepareForExecute();
|
|
|
|
/**
|
|
* @brief 仿真控制
|
|
* @param objectId 对象ID
|
|
* @param cmd 命令
|
|
*/
|
|
void SimControl(uint32_t objectId, SimControlCmd cmd);
|
|
|
|
/**
|
|
* @brief 初始化
|
|
*/
|
|
void Initialize(uint32_t initialType);
|
|
|
|
/**
|
|
* @brief 仿真控制
|
|
* @param cmd 命令
|
|
*/
|
|
void OnSimControl(uint32_t objectId, SimControlCmd cmd);
|
|
};
|