Files
qt5-legatus-legacy/Lts/Services/AudioVideoManagement/mounting_point.h
T
2026-08-13 18:33:10 +02:00

61 lines
1.2 KiB
C++
Executable File

/**
* @RDE_HEADER@
* MountingPoint
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Fröbel, SLSE, 2017-11-30
*/
#pragma once
#include "avm_export.h"
#include <QObject>
#include <memory>
namespace InfrastructureManagement
{
class StructureElement;
} // namespace InfrastructureManagement
namespace AudioVideoManagement
{
class Asset;
/**
* Part of the data model used by the AssetAssignmentManager.
* @author Christian Fröbel
*/
class AVM_COMMON_EXPORT MountingPoint : public QObject
{
Q_OBJECT
public:
explicit MountingPoint(const InfrastructureManagement::StructureElement &mountingPoint);
~MountingPoint();
const InfrastructureManagement::StructureElement &data() const { return *m_data; }
/** Emits the changed() signal. */
void update(const InfrastructureManagement::StructureElement &data);
/** May only be called when mounted. */
Asset *asset() const;
void mount2(Asset *asset);
void unmount2(Asset *asset);
signals:
void changed(MountingPoint *mountingPoint);
private:
std::unique_ptr<InfrastructureManagement::StructureElement> m_data;
Asset *m_asset{nullptr}; // null if not mounted
};
} // namespace AudioVideoManagement