/** * Send / Receive telegrams to/from Hla * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-09-26 */ #pragma once #include #include #include // tr_lts #include "dds_handler.h" #include "logger.h" #include "ppm_handler.h" #include "pdm_handler.h" #include "aes_handler.h" namespace ApHlaJson { class HlaDispatcher; class PpmHandler; class PdmHandler; class AesHandler; class MainDispatcher final : public TrainingAreaBase::Plugin::Interface { Q_OBJECT public: MainDispatcher(TrainingAreaBase::Plugin::DataProvider *pdp, const std::shared_ptr &recvFromTabCb, const std::shared_ptr &sendToTabCb, NGL::Settings *settings); ~MainDispatcher(); std::shared_ptr ppmHandler() const { return m_ppmHandler; } std::shared_ptr pdmHandler() const { return m_pdmHandler; } std::shared_ptr aesHandler() const { return m_aesHandler; } std::shared_ptr ddsHandler() const { return m_ddsHandler; } int exerciseId() const { return m_exerciseId; } public slots: bool init() override; public: std::shared_ptr sendToTab() override; bool isDebugInterface() const override { return false; } bool canSendData() const override; void exerciseChanged() override; const char *name() const override { return tr_lts("dds", "ApHlaJson"); } private: HlaDispatcher *m_hlaDispatcher; std::shared_ptr m_recvFromTabCb; const std::shared_ptr m_sendToTab; std::shared_ptr m_mainHandlerTx; TrainingAreaBase::Plugin::DataProvider *m_pdp; NGL::Settings *m_settings; std::shared_ptr m_ppmHandler; std::shared_ptr m_pdmHandler; std::shared_ptr m_aesHandler; std::shared_ptr m_ddsHandler; NGL::INGLLogger &m_logger; int m_domainId; int m_exerciseId; }; } // namespace HlaJson