/** * DdsHandler for DDS * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2015-09-02 */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include "logger.h" namespace Core { class Pacemaker; } namespace TargetManagement { class DdsHandler final : public QObject { Q_OBJECT public: explicit DdsHandler(int domainId, int exerciseId); 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 dds() const { return m_ddsConnector; } std::shared_ptr dtcTab() const { return m_dtcTab;} std::shared_ptr ftcTab() const { return m_ftcTab;} std::shared_ptr dtcPpm() const {return m_dtcPpm;} ///< Pointer to DTC ParticipantManagement interface object std::shared_ptr ftsTgt() const { return m_ftsTgt;} std::shared_ptr dtsTgt() const { return m_dtsTgt;} /** * Get equipment number for the given participant * @param participantId participant id to get the equipment number for * @return equipment number or 0 in case of failure */ int participantId2EquipNo(const int participantId) const; int equipNo2participantId(const int equipmentNumber) const; private Q_SLOTS: /** * Handle the signals from 'ParticipantManagement' */ void onParticipantChanged(const ParticipantManagement::Participant &data, DataModification modType); private: std::shared_ptr m_ddsConnector; std::shared_ptr m_dtcCore; std::shared_ptr m_pacemaker; std::shared_ptr m_topicLockMaster; std::shared_ptr m_dtsTgt; std::shared_ptr m_ftsTgt; std::shared_ptr m_dtcTab; std::shared_ptr m_ftcTab; std::shared_ptr m_dtcPpm; ///< Pointer to DTC ParticipantManagement interface object QMap m_partId2EquipNoMap; ///< Reference map participant (player) to equipment number QMap m_equipNo2partIdMap; ///< Reference map equipment number (player) to participant NGL::INGLLogger &m_logger; }; } // namespace TargetManagement