/** * @RDE_HEADER@ * MainDispatcher for AdlerJson Plugin * $Id: main_dispatcher.h 62899 2024-05-29 11:08:50Z ewert_j $ * $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.h $ * $Author: ewert_j $ * Created by Julius Ewert, ESIM, 2024-03-20 */ #pragma once #include #include #include // tr_lts #include //#include "logger.h" #include "ppm_handler.h" #include "pdm_handler.h" #include "aes_handler.h" #include "flm_handler.h" #include "asm_handler.h" namespace AdlerJson { class JsonDispatcher; class PpmHandler; class PdmHandler; class AesHandler; class FlmHandler; class AsmHandler; 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, const std::shared_ptr &ddsHandler, 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 asmHandler() const { return m_asmHandler; } JsonDispatcher* jsonDispatcher() const { return m_adlerDispatcher; } std::shared_ptr ddsHandler() const { return m_ddsHandler; } int exerciseId() const { return m_exerciseId; } public slots: bool init() override; void onWebsocketConnected(quint16 port); public: std::shared_ptr sendToTab() override; bool canSendData () const override; void exerciseChanged () override; bool isDebugInterface () const override { return false; } const char *name () const override { return tr_lts("dds", "ApHlaJson"); } private: JsonDispatcher *m_adlerDispatcher; 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_flmHandler; std::shared_ptr m_asmHandler; std::shared_ptr m_ddsHandler; int m_domainId; int m_exerciseId; NGL::INGLLogger &m_logger; }; } // namespace AdlerJson