Files
2026-08-13 18:33:10 +02:00

70 lines
1.7 KiB
C++
Executable File

/**
* @RDE_HEADER@
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include "logger.h"
#include <AudioVideoManagement/avm.hpp>
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<AudioVideoManagement::AvMenuEntry> &entries,
std::vector<AvMenuEntry> &contToAdd);
private:
Interface::Dts *m_dts;
DatabaseInterface *m_db;
MenuStruct m_data;
NGL::INGLLogger &m_logger;
};
} // namespace AudioVideoManagement