/** * The UasHandler class manages all Uas related function topics and holds classes for * further Uas data. * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Fritsche, ESZS, 2025-04-08 */ #pragma once #include #include #include #include #include "logger.h" namespace ParticipantManagement { class MainHandler; namespace UasHandling { class Uas; class UasHandler final: public QObject , protected Interface::Fts::CreateModifyUasRequestHandler , protected Interface::Fts::RemoveUasRequestHandler { Q_OBJECT public: explicit UasHandler(MainHandler *mainHandler); ~UasHandler(); bool init(); void onCreateModifyUasRequest(const rti::core::SampleIdentity &cookie, const CreateModifyUasRequest &request) override final; void onRemoveUasRequest(const rti::core::SampleIdentity &cookie, const RemoveUasRequest &request) override final; private slots: void onExerciseChanged(const ExerciseManagement::Exercise &data, DataModification mod); void onUASRadioLinkConnectionStatusChanged(const UASRadioLinkConnectionStatus &data, DataModification mod); private: Core::FunctionReplyObject removeUas(const RemoveUasRequest &request); Core::FunctionReplyObject removeUas(UasHandling::Uas *uasToDelete); Core::FunctionReplyObject createUas(const CreateModifyUasRequest &request); Core::FunctionReplyObject modifyUas(const CreateModifyUasRequest &request); bool isUasParticipant(int participantId) const; bool hostNameHostPortExists(const QString &host, int hostport, int uasId); MainHandler *m_mainHandler; std::shared_ptr m_exmDtc; QHash m_uass; LOGGER_T m_logger; }; } // namespace UasHandling } // namespace ParticipantManagement