/** * DdsHandler for DDS * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2015-09-02 */ #include "dds_handler.h" #include namespace ExerciseEventManagement { DdsHandler::DdsHandler(int domainId, int partitionId, IDL::PartitionType partitionType) : m_ddsConnector(std::make_shared(domainId, partitionType, partitionId)) , m_logger(getLogger("DdsHandler")) { DEBUG_LOG(m_logger) << "DdsHandler(" << domainId << ") for partition: " << m_ddsConnector->getDefaultPartition(); } DdsHandler::~DdsHandler() { } bool DdsHandler::init(const QStringList &qosFileList) { TRACE_LOG(m_logger) << " START, this=" << this; if (!m_ddsConnector->init(qosFileList)) { ERROR_LOG(m_logger) << "Error initializing dds connections - aborting"; return false; } // default initialize Publisher and Subscriber m_ddsConnector->initPublisherSubscriber(); // has to be false, because Snapshot Data Topics can be very large and fragmentation is not supported for batched writers! m_ddsConnector->enableBatchedWriter(false); // Pacemaker m_pacemaker = new Core::Pacemaker(m_ddsConnector); m_ddsDts = ExerciseEventManagement::Interface::Dts::create(m_ddsConnector); bool bRet = m_ddsDts->enableAll(); INFO_LOG(m_logger) << "Dts initialised"; // Subsribe for InfrastructureManagement::MainStructureElement m_dtcIsm = InfrastructureManagement::Interface::Dtc::create(m_ddsConnector); TRACE_LOG(m_logger) << " END, this=" << this; return bRet; } void DdsHandler::setRunningState(Core::RunningState rs) { if (!m_pacemaker) return; m_pacemaker->setNewState(rs); } void DdsHandler::addPortToPacemaker(quint16 port, Core::PortType type) { if (!m_pacemaker) return; m_pacemaker->addPort(port, type); } } // Namespace ExerciseEventManagement