236 lines
5.0 KiB
C++
Executable File
236 lines
5.0 KiB
C++
Executable File
#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<XNTimeManager>();
|
|
d->threadManager = std::make_shared<XNThreadManager>();
|
|
d->scenarioManager = std::make_shared<XNScenarioManager>();
|
|
d->ddsManager = std::make_shared<XNDDSManager>();
|
|
d->modelManager = std::make_shared<XNModelManager>();
|
|
d->serviceManager = std::make_shared<XNServiceManager>();
|
|
d->eventManager = std::make_shared<XNEventManager>();
|
|
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;
|
|
}
|