/** * @RDE_HEADER@ * Helper classes to retrieve attribute values * $Id$ * $HeadURL$ * $Author$ * * Created by Christian Ehrlicher, NLE, 2020-02-07 */ #pragma once #include #include #include namespace AudioVideoManagement { class StreamNameMapping; namespace Interface { class Dtc; } } namespace InfrastructureManagement { namespace Interface { class Dtc; } } namespace OperatorManagement { namespace Interface { class Dtc; } } namespace ParticipantManagement { namespace Interface { class Dtc; } } namespace ProjectDataManagement { namespace Interface { class Dtc; } } namespace Timeline { using AttributeValueMap = QMap; using AtributeValueLookupMap = QMap; class AttributeValueLookupProvider { public: virtual ~AttributeValueLookupProvider() = default; virtual AttributeValueMap getAttributeValueMap(int eventType) const = 0; virtual QString getValueStringFromValueId(int attributeValueId) const = 0; }; class AvmChargeType final : public AttributeValueLookupProvider { public: explicit AvmChargeType(const std::shared_ptr &dtc) : m_dtc(dtc) {} AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; }; class AvmGearType final : public AttributeValueLookupProvider { public: explicit AvmGearType(const std::shared_ptr &dtc) : m_dtc(dtc) {} AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; }; class AvmParty final : public AttributeValueLookupProvider { public: explicit AvmParty(const std::shared_ptr &dtc) : m_dtc(dtc) {} AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; }; class AvmEquipmentNumber final : public AttributeValueLookupProvider { public: explicit AvmEquipmentNumber(const std::shared_ptr &dtc) : m_dtc(dtc) {} AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; }; class AvmOperator final : public AttributeValueLookupProvider { public: explicit AvmOperator(const std::shared_ptr &dtc) : m_dtc(dtc) {} AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; }; class AvmBuilding final : public AttributeValueLookupProvider { public: explicit AvmBuilding(const std::shared_ptr &dtc) : m_dtc(dtc) {} AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; }; class AvmStreamName final : public AttributeValueLookupProvider { public: explicit AvmStreamName(const std::shared_ptr &dtc); ~AvmStreamName(); AttributeValueMap getAttributeValueMap(int eventType) const override; QString getValueStringFromValueId(int attributeValueId) const override; private: std::shared_ptr m_dtc; std::shared_ptr m_snm; }; } // namespace Timeline