#include "XNFramework.h" #include "XNFramework_p.h" #include "XNTimeManager.h" #include "XNThreadManager.h" #include "XNScenarioManager.h" #include "XNDDSManager.h" #include "XNModelManager.h" #include "XNServiceManager.h" #include "XNEventManager.h" XNFramework::XNFramework() : XNObject(new XNFrameworkPrivate()) { SetObjectName("XNFramework"); SetUniqueId(1); T_D(); d->timeManager = std::make_shared(); d->threadManager = std::make_shared(); d->scenarioManager = std::make_shared(); d->ddsManager = std::make_shared(); d->modelManager = std::make_shared(); d->serviceManager = std::make_shared(); d->eventManager = std::make_shared(); d->ddsManager->SetFramework(XN_THISPTR); d->timeManager->SetFramework(XN_THISPTR); d->threadManager->SetFramework(XN_THISPTR); d->scenarioManager->SetFramework(XN_THISPTR); d->modelManager->SetFramework(XN_THISPTR); d->serviceManager->SetFramework(XN_THISPTR); d->eventManager->SetFramework(XN_THISPTR); } XNFramework::XNFramework(PrivateType *p) : XNObject(p) { } XNFramework::~XNFramework() { } std::string XNFramework::GetWorkPath() { T_D(); return d->workPath; } void XNFramework::SetWorkPath(const std::string &workPath) { T_D(); d->workPath = workPath; } std::string XNFramework::GetModelPath() { T_D(); return d->modelPath; } void XNFramework::SetModelPath(const std::string &modelPath) { T_D(); d->modelPath = modelPath; } std::string XNFramework::GetServicePath() { T_D(); return d->servicePath; } void XNFramework::SetServicePath(const std::string &servicePath) { T_D(); d->servicePath = servicePath; } uint32_t XNFramework::GetCpuAffinity() { T_D(); return d->uCpuAffinity; } void XNFramework::SetCpuAffinity(uint32_t cpuAffinity) { T_D(); d->uCpuAffinity = cpuAffinity; } bool XNFramework::Initialize(uint32_t initialType) { T_D(); LOG_INFO("XNFramework Initialize ..."); bool ret = d->eventManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } ret = d->timeManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } ret = d->ddsManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } ret = d->serviceManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } ret = d->threadManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } ret = d->modelManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } ret = d->scenarioManager->Initialize(); if (!ret) { LOG_ERROR("XNFramework Initialize Failed!"); return false; } LOG_INFO("XNFramework Initialize Success!"); LOG_INFO("XNFramework Analyze Scenario Xml ..."); ret = d->scenarioManager->AnalysisScenarioXml(d->scenarioXml, initialType); if (!ret) { LOG_ERROR("XNFramework Analyze Scenario Xml Failed!"); return false; } LOG_INFO("XNFramework Analyze Scenario Xml Success!"); return true; } bool XNFramework::PrepareForExecute() { T_D(); bool ret = d->eventManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } ret = d->timeManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } ret = d->ddsManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } ret = d->serviceManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } ret = d->threadManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } ret = d->modelManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } ret = d->scenarioManager->PrepareForExecute(); if (!ret) { LOG_ERROR("XNFramework PrepareForExecute Failed!"); return false; } LOG_INFO("XNCore is prepared for execute! Simulation will start soon..."); return true; } void XNFramework::SetScenarioXml(const std::string &scenarioXml) { T_D(); d->scenarioXml = scenarioXml; } void XNFramework::SimControl(uint32_t objectId, SimControlCmd cmd) { T_D(); d->timeManager->SimControl(objectId, cmd); d->threadManager->SimControl(objectId, cmd); } XNTimeManagerPtr XNFramework::GetTimeManager() { T_D(); return d->timeManager; } XNThreadManagerPtr XNFramework::GetThreadManager() { T_D(); return d->threadManager; } XNScenarioManagerPtr XNFramework::GetScenarioManager() { T_D(); return d->scenarioManager; } XNDDSManagerPtr XNFramework::GetDDSManager() { T_D(); return d->ddsManager; } XNEventManagerPtr XNFramework::GetEventManager() { T_D(); return d->eventManager; } XNModelManagerPtr XNFramework::GetModelManager() { T_D(); return d->modelManager; } XNServiceManagerPtr XNFramework::GetServiceManager() { T_D(); return d->serviceManager; }