#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 SocketReader; 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 externalEquipmentNumberAdded(int equipNo); void externalEquipmentNumberRemoved(int equipNo); void participantInitRequest(const TrainingAreaBase::TetraIcd::Init &request); void participantVulnerabilityStateRequest(const TrainingAreaBase::TetraIcd::DemandVulnerabilityStateChange &request); void participantCesHitInformationRequest(const TrainingAreaBase::TetraIcd::CesHitInformation &request); private slots: void onFirstTickFinished(); void onNewSocketReaderData(const QByteArray &data, int hlaRequestIdentifier); private: NGL::INGLLogger &m_logger; void initSocketReaders(); void deInitSocketReaders(); std::shared_ptr m_ddsHandler; std::shared_ptr m_ppmHandler; std::shared_ptr m_aesHandler; std::shared_ptr m_ngsConnector; QList m_socketReaders; }; }