/** * Get information about (O/C) participants to be able to send/receive messages for them * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-12-13 */ #pragma once #include "dds_handler.h" #include "logger.h" #include #include #include #include #include #include namespace Messaging { class ExerciseHandler; class ExercisesHandler final : public QObject { Q_OBJECT public: explicit ExercisesHandler(const std::shared_ptr &ddsHandler); ~ExercisesHandler(); bool init(); bool sendEquipmentMessage(const TrainingAreaBase::SendEquipmentMessageRequest &request); bool sendOcEquipmentMessage(const OcSituationServer::SendEquipmentMessageRequest &request); int findEquipmentNumber(int participantId, int exerciseId); Q_SIGNALS: void messageFromTrainingArea(const TrainingAreaBase::EquipmentMessage &data); private Q_SLOTS: void onEquipmentExerciseMappingChanged(const ParticipantManagement::EquipmentExerciseMapping &data, DataModification modType); void onEquipmentMessageChanged(const TrainingAreaBase::EquipmentMessage &data, const DataModification modType); void onExerciseHandlerIdleTimeout(); private: ExerciseHandler *exerciseHandlerForExerciseId(int exerciseId); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_ppmDtc; QHash m_exerciseHandler; // QHash< QPair, equipmentNumber> QHash, int> m_participant2EquipNumber; QHash m_equipNo2ExerciseId; LOGGER_T m_logger; }; } // namespace Messaging