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

81 lines
2.9 KiB
C++
Executable File

/**
* Handler for all Language HMI objects
* $Id$
* $HeadURL$
* $Author$
* Created by Hanna E. Rathje, SLSE, 2015-09-03
*/
#pragma once
#include <QMap>
#include <QQueue>
#include <QObject>
#include "dds_handler.h"
#include "esm_convert_from_tab.h"
#include "logger.h"
namespace EffectShowManagement
{
class Initialization;
class ObjectEffectShowActorRelocation;
/**
* @brief Handler for effect show actor relocations.
*
* (1)Fetches the gui-interactions for effect show actor relocations and
* triggers data base administration accordingly.\n
* (2)If a effect show actor relocation was created, the Training Area Base Proxy
* will be triggered to send a relocation order to the effect show actor.\n
* (3)If a effect show actor was deleted, the Training Area Base Proxy will be
* triggered to send a retract order to the effect show actor.\n
* (4)Receives the confirmation from the effect show actor via Training Area Base
* Proxy for relocation order.\n
* (5)Triggers the update of the data base with the new confirmation.\n
* (6)If the relocation order is completed, the status will be provided for the
* dialog for 1min. After that the relocation order will be removed.\n
*/
class HandlerEffectShowActorRelocation : public QObject
, protected Interface::Fts::EffectShowActorRelocationModifyRequestHandler
, protected Interface::Fts::EffectShowActorRelocationRemoveRequestHandler
{
Q_OBJECT
public:
explicit HandlerEffectShowActorRelocation(Initialization *mainHandler, QObject *parent = nullptr);
~HandlerEffectShowActorRelocation();
/**
* @brief Update of member variables with data base entries after start.
*/
bool init();
/**
* @brief Updates the handler with the order confirmation from effect show actor
* @param[in] orderConfirmation Order confirmation from effect show actor
*/
void relocationOrderConfirmationReceived(const ConvertFromTab::OrderConfirmation_t &orderConfirmation);
private:
void onEffectShowActorRelocationModifyRequest(const rti::core::SampleIdentity &cookie,
const EffectShowActorRelocation &request) override final;
Core::FunctionReplyObject effectShowActorRelocationModifyRequest(const EffectShowActorRelocation &request);
Core::FunctionReplyObject effectShowActorRelocationCreateRequest(const EffectShowActorRelocation &request);
void onEffectShowActorRelocationRemoveRequest(const rti::core::SampleIdentity &cookie,
const Core::RemoveElementRequest &request) override final;
private:
QMap<int, ObjectEffectShowActorRelocation *> m_effectShowActorRelocationObjMap;
struct Completed_t
{
qint64 timestamp;
int id;
};
QQueue<Completed_t> m_completed; // IDs and timestamp of the completed relocations
Initialization *m_mainHandler;
NGL::INGLLogger &m_logger;
};
}