/** * Handler ShootbackTargets (L400) * $Id$ * $HeadURL$ * $Author$ * Created by N. Thoden, NLE, 06.04.2020 */ #pragma once #include #include "dds_handler.h" #include "logger.h" #include namespace TargetManagement { class MainHandler; class ObjectShootbackTarget; class HandlerShootbackTarget final : public QObject , protected Interface::Fts::ShootbackTargetModifyRequestHandler , protected Interface::Fts::ShootbackTargetRemoveRequestHandler { Q_OBJECT public: explicit HandlerShootbackTarget(MainHandler *mainHandler); ~HandlerShootbackTarget(); /** * Initialize the handler to manage information */ bool init(); const QHash &getObjectMap() const { return m_objectMap; } ObjectShootbackTarget *data(int id) { if (!m_objectMap.contains(id)) return nullptr; return m_objectMap[id]; } ObjectShootbackTarget *dataForTargetParticipantId(int targetParticipantId) const; int targetDataIdForTargetParticipantId(int targetParticipantId) const; Q_SIGNALS: void objectChanged(qint32 objId, bool removed); private Q_SLOTS: private: // methods void onShootbackTargetModifyRequest(const rti::core::SampleIdentity &cookie, const ShootbackTarget &request) override; Core::FunctionReplyObject shootbackTargetModifyRequest(const ShootbackTarget &request); void onShootbackTargetRemoveRequest(const rti::core::SampleIdentity &cookie, const Core::RemoveElementRequest &request) override; private: // attributes QHash m_objectMap; MainHandler *m_mainHandler; std::shared_ptr m_dtsTgt; NGL::INGLLogger &m_logger; ///< Interface to the Logging-Facility }; } // namespace TargetManagement