Files
qt5-legatus-legacy/Lts/Services/Messaging/exercise_handler.h
T
2026-08-13 18:33:10 +02:00

49 lines
1.6 KiB
C++
Executable File

/**
* 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 <QObject>
#include <QTimer>
#include <TrainingAreaBase/tab_ftc.h>
#include <OcSituationServer/oss_ftc.h>
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::DdsConnector> &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<DDSConnector::DdsConnector> m_ddsConnector;
std::shared_ptr<TrainingAreaBase::Interface::Ftc> m_tabFtc;
std::shared_ptr<OcSituationServer::Interface::Ftc> m_ossFtc;
int m_exerciseId;
QTimer *m_idleTimer; //<! timer to delete ExerciseHandler after n seconds when no longer needed
LOGGER_T m_logger;
};
} // namespace Messaging