/** * DdsHandler for PPM * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2015-09-02 */ #pragma once #include #include #include #include #include #include #include "logger.h" #include namespace Core { class Pacemaker; } namespace ParticipantManagement { class ExerciseTime; class DdsHandler: public QObject { Q_OBJECT public: DdsHandler(int domainId, int exerciseId); ~DdsHandler(); bool init(const QStringList &qosFileList = QStringList()); std::shared_ptr pacemaker() const { return m_pacemaker; } std::shared_ptr topicLockMaster() const { return m_topicLockMaster; } std::shared_ptr dtc() const { return m_ddsDtc; } std::shared_ptr dts() const { return m_ddsDts; } std::shared_ptr fts() const { return m_ddsFts; } std::shared_ptr exAnyDts() const { return m_ddsAnyExDts; } std::shared_ptr exAnyFts() const { return m_ddsAnyExFts; } std::shared_ptr pdmDtc() const { return m_pdmDtc; } std::shared_ptr dds() const { return m_ddsConnector; } // this should be called when a long action is in progress to // not run into a timeout. TODO: it would be much better to // move PaceMaker and ExerciseTime into an own thread instead this hack void longActionBreak(); private: std::shared_ptr m_ddsConnector; std::shared_ptr m_exAnyConnector; std::shared_ptr m_ddsDts; std::shared_ptr m_ddsDtc; std::shared_ptr m_ddsFts; std::shared_ptr m_ddsAnyExDts; std::shared_ptr m_ddsAnyExFts; std::shared_ptr m_pdmDtc; std::shared_ptr m_pacemaker; std::shared_ptr m_topicLockMaster; std::shared_ptr m_exerciseTime; NGL::INGLLogger &m_logger; }; }