/** * @RDE_HEADER@ * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "logger.h" #include namespace Core { class FunctionReplyObject; } namespace AudioVideoManagement { class MainHandler; class DatabaseInterface; namespace Interface { class Dts; } class ObjectMenuStruct { public: ObjectMenuStruct(Interface::Dts *dts, DatabaseInterface *db); ~ObjectMenuStruct(); /** Called when the object is created as a result of a Create-request. */ Core::FunctionReplyObject createFromDds(const MenuStruct &data); /** Called when the object is updated as a result of a Modify-request. */ Core::FunctionReplyObject updateFromDds(const MenuStruct &data); /** Called when the object is initially loaded from the DB. */ void createFromDb(const MenuStruct &data); /** Called when the object is reloaded from the DB. */ void updateFromDb(const MenuStruct &data); /** Called as a result of a Remove-request. */ Core::FunctionReplyObject remove(); long getId() const { return m_data.id(); } private: void onPublishData(); Core::FunctionReplyObject insertUpdateDb(const MenuStruct &data); Core::FunctionReplyObject insertUpdateChildren(int virtualParentId, int realParentId, const std::vector &entries, std::vector &contToAdd); private: Interface::Dts *m_dts; DatabaseInterface *m_db; MenuStruct m_data; NGL::INGLLogger &m_logger; }; } // namespace AudioVideoManagement