/** * Send a function topic to TrainingAreabase in a specific exercise * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-12-13 */ #pragma once #include "dds_handler.h" #include "logger.h" #include #include #include #include namespace Messaging { class ExerciseHandler final : public QObject, public TrainingAreaBase::Interface::Ftc::SendEquipmentMessageReplyHandler, public OcSituationServer::Interface::Ftc::SendEquipmentMessageOcReplyHandler { Q_OBJECT public: ExerciseHandler(const std::shared_ptr &ddsConnector, const int exerciseId); bool init(); bool sendEquipmentMessage(const TrainingAreaBase::SendEquipmentMessageRequest &request); bool sendOcEquipmentMessage(const OcSituationServer::SendEquipmentMessageRequest &request); int exerciseId() const; Q_SIGNALS: void exerciseHandlerIdleTimeout(); void equipmentMessageReply(int msgId, bool sentSuccessful); void equipmentMessageOcReply(int replyId, bool sentSuccessful); private: void onSendEquipmentMessageReply(const Core::FunctionReplyObject &replyObject) override; void onSendEquipmentMessageOcReply(const Core::FunctionReplyObject &replyObject) override; private: std::shared_ptr m_ddsConnector; std::shared_ptr m_tabFtc; std::shared_ptr m_ossFtc; int m_exerciseId; QTimer *m_idleTimer; //