/** * Marker object * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-04-12 */ #pragma once #include "dds_handler.h" #include "mrk_db.h" #include // Generated #include namespace MarkerManagement { class ObjectMarker final { public: explicit ObjectMarker(const std::shared_ptr &ddsHandler, const std::shared_ptr &db); ~ObjectMarker(); Core::FunctionReplyObject createObject(const Marker &data); Core::FunctionReplyObject updateObject(const Marker &data); Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject setUsed(bool isUsed); qint32 getId() const { return m_dataMarkerObject.id(); } Marker getData() const { return m_dataMarkerObject; } QString getName() const { return QString::fromStdString(m_dataMarkerObject.name()); } bool isValid() const; bool isUsed() const; // convert methods static Database::MrkMarker toDbData(const Marker &ddsData); // dds -> db static Marker toDdsData(const Database::MrkMarker &dbData); // db -> dds static Database::MrkMarkerDescription toDbData(const MarkerDescription &ddsData); // dds -> db static MarkerDescription toDdsData(const Database::MrkMarkerDescription &dbData); // db -> dds private: void onPublishData(); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_db; Marker m_dataMarkerObject; NGL::INGLLogger &m_logger; }; } // namespace MarkerManagement