70 lines
1.7 KiB
C++
Executable File
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
|