XNSim/XNCore/XNFramework.h

169 lines
2.9 KiB
C++
Executable File

/**
* @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);
};