/** * @RDE_HEADER@ * ISM Object Main Structure Element * $Id$ * $HeadURL$ * $Author$ * Created by Iuliana Ojog, SLSE, 2016-11-26 */ #pragma once #include #include #include #include #include "logger.h" //------------------------------------------------------------------------------------------------------------- namespace PresentationManagement { class Initialization; class ObjectPresentation { public: explicit ObjectPresentation(Initialization *mainHandler); ObjectPresentation(const Presentation &data, Initialization *mainHandler); ~ObjectPresentation(); Core::FunctionReplyObject createObject(const PresentationModifyRequest &request); Core::FunctionReplyObject updateObject(const PresentationModifyRequest &request); Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject changeStatus(const PresentationChangeStatusRequest &request); qint32 getId() const { return m_data.id(); } QString getName() const { return QString::fromStdString(m_data.name()); } const std::vector &getContent() const { return m_content; } const Presentation &getData() const { return m_data; } bool isValid() const; void addPresentationContent(PresentationContent &&data); // convert methods static Database::PrePresentation toDbData(const Presentation &ddsData); // dds -> db static Presentation toDdsData(const Database::PrePresentation &dbData); // db -> dds static Database::PrePresentationContent toDbData(const PresentationContent &ddsData); // dds -> db static PresentationContent toDdsData(const Database::PrePresentationContent &dbData); // db -> dds void onPublishData(); private: Initialization *m_mainHandler; Presentation m_data; std::vector m_content; NGL::INGLLogger &m_logger; }; }