/** * Handler ObjectShootbackTargets (L400) * $Id$ * $HeadURL$ * $Author$ * Created by N. Thoden, NLE, 06.04.2020 */ #pragma once #include "dds_handler.h" #include "logger.h" #include // Generated #include #include namespace NGL { class INGLLogger; } namespace TargetManagement { class MainHandler; class ObjectShootbackTarget { public: explicit ObjectShootbackTarget(MainHandler *mainHandler); ~ObjectShootbackTarget(); Core::FunctionReplyObject createObject(const ShootbackTarget &data); Core::FunctionReplyObject updateObject(const ShootbackTarget &data); Core::FunctionReplyObject removeObject(); void updateVolatileData(const std::vector &visibleParticipant); void updateVolatileData(const Core::GeoPosition &position); qint32 getId() const { return m_data.id(); } QString getName() const { return QString::fromStdString(m_data.name()); } qint32 getTargetParticipantId() const { return m_data.targetParticipantId(); } const ShootbackTarget &getData() const { return m_data; } bool isValid() const; bool isUsed() const; Core::FunctionReplyObject setUsed(bool isUsed); // convert methods static Database::TgtShootbackTarget toDbData(const ShootbackTarget &ddsData); // dds -> db static ShootbackTarget toDdsData(const Database::TgtShootbackTarget &dbData); // db -> dds bool isDifferent(const Database::TgtShootbackTarget &dbData); protected: void onPublishData(); private: MainHandler *m_mainHandler; ShootbackTarget m_data; NGL::INGLLogger &m_logger; }; }