/** * MainHandler for HighLevelArchitecture * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-04-07 */ #pragma once #include #include #include "dds_handler.h" #include "ppm_handler.h" #include "aes_handler.h" #include "ngs_handler.h" #include #include namespace HighLevelArchitecture { class NgsHandler : public QObject { Q_OBJECT public: explicit NgsHandler(QObject *parent = nullptr); ~NgsHandler(); bool init(const std::shared_ptr &ddsHandler); std::shared_ptr ddsHandler() const { return m_ddsHandler; } std::shared_ptr ngsConnector() const { return m_ngsConnector; } std::shared_ptr ppmHandler() const { return m_ppmHandler; } std::shared_ptr aesHandler() const { return m_aesHandler; } bool isConnectedToHla() const; Q_SIGNALS: void firstTickFinished(); // HLA -> TAB void externalEquipmentNumberAdded(int equipNo); void externalEquipmentNumberRemoved(int equipNo); void ngsHandlerReady(); // TAB -> HLA void participantInitRequest(const TrainingAreaBase::TetraIcd::Init &request); void participantBiteRequest(const TrainingAreaBase::TetraIcd::DemandBite &request); private slots: void onFirstTickFinished(); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_ppmHandler; std::shared_ptr m_aesHandler; std::shared_ptr m_ngsConnector; LOGGER_T m_logger; }; } // namespace HighLevelArchitecture