/** * @RDE_HEADER@ * DDS Handler for ISM * $Id$ * $HeadURL$ * $Author$ * Created by Iuliana Ojog, SLSE, 2016-11-26 */ #include "dds_handler.h" #include namespace InfrastructureManagement { DdsHandler::DdsHandler(int domainId) : m_ddsConnector(std::make_shared(domainId, IDL::PartitionType::Any)) , m_logger(getLogger("DdsHandler")) { DEBUG_LOG(m_logger) << "DdsHandler(" << domainId << ") for partition: " << m_ddsConnector->getDefaultPartition(); } bool DdsHandler::init(const QStringList &qosFileList) { if (!m_ddsConnector->init(qosFileList)) { ERROR_LOG(m_logger) << "Error initializing dds connections - aborting"; return false; } // default initialize Publisher and Subscriber m_ddsConnector->initPublisherSubscriber(); // Pacemaker m_pacemaker = std::make_shared(m_ddsConnector); m_topicLockMaster = std::make_shared(m_ddsConnector); m_ddsDts = InfrastructureManagement::Interface::Dts::create(m_ddsConnector); m_ddsFts = InfrastructureManagement::Interface::Fts::create(m_ddsConnector); bool bRet = true; try { bRet = m_ddsFts->enableAll(); INFO_LOG(m_logger) << "Fts initialised"; // erst FTS funktioniert komischer Weise nicht (seit MainStructureElementModifyRequest // von MainStructureElement abgeleitet ist ... rti/dds - Bug? bRet &= m_ddsDts->enableAll(); INFO_LOG(m_logger) << "Dts initialised"; } catch (const dds::core::Exception &e) { ERROR_LOG(m_logger) << "Exception: " << e.what(); m_pacemaker->setNewState(Core::RunningState::StoppedError); return false; } return bRet; } } // Namespace PDM