/** * @RDE_HEADER@ * MountingPoint * $Id$ * $HeadURL$ * $Author$ * Created by Christian Fröbel, SLSE, 2017-11-30 */ #pragma once #include "avm_export.h" #include #include 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 m_data; Asset *m_asset{nullptr}; // null if not mounted }; } // namespace AudioVideoManagement