XNSim/XNCore/XNFramework.h

169 lines
2.9 KiB
C
Raw Normal View History

2025-04-28 12:25:20 +08:00
/**
* @file XNFramework.h
* @author jinchao
* @brief
* @version 1.0
* @date 2025-01-08
*
* @copyright Copyright (c) 2025 COMAC
*
*/
#pragma once
#include "XNObject.h"
2025-05-20 15:39:40 +08:00
struct XNFrameworkPrivate;
2025-04-28 12:25:20 +08:00
/**
* @brief
*/
class XNCORE_EXPORT XNFramework : public XNObject
{
/**
* @brief
*/
2025-05-20 15:39:40 +08:00
XN_METATYPE(XNFramework, XNObject)
2025-04-28 12:25:20 +08:00
/**
* @brief
*/
2025-05-20 15:39:40 +08:00
XN_DECLARE_PRIVATE(XNFramework)
2025-04-28 12:25:20 +08:00
public:
/**
* @brief
* @param parent
*/
2025-05-20 15:39:40 +08:00
XNFramework();
2025-04-28 12:25:20 +08:00
/**
* @brief
*/
virtual ~XNFramework();
2025-05-20 15:39:40 +08:00
protected:
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @param p
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNFramework(PrivateType *p);
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
/**
2025-05-20 15:39:40 +08:00
* @brief DDS管理器
* @return DDS管理器
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNDDSManagerPtr GetDDSManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNEventManagerPtr GetEventManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNModelManagerPtr GetModelManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNScenarioManagerPtr GetScenarioManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNServiceManagerPtr GetServiceManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief 线
* @return 线
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNThreadManagerPtr GetThreadManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
XNTimeManagerPtr GetTimeManager();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
std::string GetWorkPath();
2025-04-28 12:25:20 +08:00
/**
* @brief
* @param workPath
*/
2025-05-20 15:39:40 +08:00
void SetWorkPath(const std::string &workPath);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
std::string GetModelPath();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @param modelPath
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
void SetModelPath(const std::string &modelPath);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
std::string GetServicePath();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @param servicePath
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
void SetServicePath(const std::string &servicePath);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief CPU亲和性
* @return CPU亲和性
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
uint32_t GetCpuAffinity();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief CPU亲和性
* @param cpuAffinity CPU亲和性
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
void SetCpuAffinity(uint32_t cpuAffinity);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief XML
* @param scenarioXml XML
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
void SetScenarioXml(const std::string &scenarioXml);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
2025-05-20 16:41:46 +08:00
* @return true:
* @return false:
2025-04-28 12:25:20 +08:00
*/
2025-05-20 16:41:46 +08:00
bool PrepareForExecute();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief 仿
* @param objectId ID
* @param cmd
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
void SimControl(uint32_t objectId, SimControlCmd cmd);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
2025-05-20 16:41:46 +08:00
* @param initialType
* @return true:
* @return false:
2025-04-28 12:25:20 +08:00
*/
2025-05-20 16:41:46 +08:00
bool Initialize(uint32_t initialType);
2025-04-28 12:25:20 +08:00
};