#pragma once #include #include "logger.h" #include namespace Core { class Pacemaker; } namespace AudioVideoManagement { namespace Interface { class Dtc; class Ftc; } } namespace ExerciseManagement { namespace Interface { class Dtc; } } namespace InfrastructureManagement { namespace Interface { class Dtc; } } namespace AssetManagement { namespace Interface { class Dtc; } } namespace CombatNetRadio { class DdsHandler final { public: explicit DdsHandler(int domainId); ~DdsHandler() = default; bool init(const QStringList &qosFileList = QStringList()); void enableDtcs(); dds::domain::DomainParticipant domainParticipant() const; Core::Pacemaker *pacemaker() const { return m_pacemaker.get(); } AssetManagement::Interface::Dtc *asmDtc() const { return m_asmDtc.get(); } AudioVideoManagement::Interface::Dtc *avmDtc() const { return m_avmDtc.get(); } AudioVideoManagement::Interface::Ftc *avmFtc() const { return m_avmFtc.get(); } ExerciseManagement::Interface::Dtc *exmDtc() const { return m_exmDtc.get(); } InfrastructureManagement::Interface::Dtc *ismDtc() const { return m_ismDtc.get(); } std::shared_ptr dds() const { return m_ddsConnector; } private: NGL::INGLLogger &m_logger; std::shared_ptr m_ddsConnector; std::unique_ptr m_pacemaker; std::shared_ptr m_asmDtc; std::shared_ptr m_avmDtc; std::shared_ptr m_avmFtc; std::shared_ptr m_exmDtc; std::shared_ptr m_ismDtc; }; }