XNSim/XNCore/XNDDSManager.cpp

46 lines
990 B
C++
Raw Normal View History

2025-04-28 12:25:20 +08:00
#include "XNDDSManager.h"
2025-05-20 15:39:40 +08:00
XNDDSManager::XNDDSManager() : XNBaseFrameObject(new XNDDSManagerPrivate())
2025-04-28 12:25:20 +08:00
{
2025-05-20 15:39:40 +08:00
SetUniqueId(8);
SetObjectName("XNDDSManager");
2025-04-28 12:25:20 +08:00
}
XNDDSManager::~XNDDSManager()
{
}
2025-05-20 15:39:40 +08:00
XNDDSManager::XNDDSManager(PrivateType *p) : XNBaseFrameObject(p)
2025-04-28 12:25:20 +08:00
{
}
2025-05-20 15:39:40 +08:00
bool XNDDSManager::Initialize()
2025-04-28 12:25:20 +08:00
{
2025-05-20 15:39:40 +08:00
T_D();
d->_status = XNFrameObjectStatus::Initialized;
d->participant_ = nullptr;
d->topics_.clear();
LOG_INFO("DDS管理器初始化成功!");
2025-05-20 15:39:40 +08:00
return true;
2025-04-28 12:25:20 +08:00
}
2025-05-20 15:39:40 +08:00
bool XNDDSManager::PrepareForExecute()
2025-04-28 12:25:20 +08:00
{
2025-05-20 15:39:40 +08:00
T_D();
2025-04-28 12:25:20 +08:00
d->_status = XNFrameObjectStatus::Ready;
LOG_INFO("DDS管理器准备就绪!");
2025-05-20 15:39:40 +08:00
return true;
2025-04-28 12:25:20 +08:00
}
2025-05-20 15:39:40 +08:00
void XNDDSManager::SetDomainID(uint32_t domainID)
2025-04-28 12:25:20 +08:00
{
2025-05-20 15:39:40 +08:00
T_D();
2025-04-28 12:25:20 +08:00
FAST_DDS_MACRO::DomainParticipantQos participantQos;
participantQos.name("XNDDSManager");
2025-05-20 15:39:40 +08:00
d->participant_ = FAST_DDS_MACRO::DomainParticipantFactory::get_instance()->create_participant(
2025-04-28 12:25:20 +08:00
domainID, participantQos);
2025-05-20 15:39:40 +08:00
if (d->participant_ == nullptr) {
LOG_ERROR("0x2130 DDS管理器创建域参与者失败!");
2025-04-28 12:25:20 +08:00
}
}