refs #345 Second wave of value classes using the CValueObjectStdTuple CRTP class template, with inheritance.

This commit is contained in:
Mathew Sutcliffe
2014-11-07 23:56:53 +00:00
parent 79e401887c
commit 40362e706a
10 changed files with 18 additions and 445 deletions

View File

@@ -25,7 +25,7 @@ namespace BlackMisc
/*!
* Base class for COM, NAV, Squawk units.
*/
template <class AVIO> class CModulator : public CAvionicsBase
template <class AVIO> class CModulator : public CValueObjectStdTuple<CModulator<AVIO>, CAvionicsBase>
{
public:
//! Column indexes
@@ -89,38 +89,20 @@ namespace BlackMisc
//! Enabled?
void setEnabled(bool enable) { this->m_enabled = enable;}
//! \copydoc CValueObject::toQVariant
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this->derived()); }
//! \copydoc CValueObject::convertFromQVariant
virtual void convertFromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(derived(), variant); }
//! \copydoc CValueObject::toJson
virtual QJsonObject toJson() const override;
//! \copydoc CValueObject::convertFromJson
virtual void convertFromJson(const QJsonObject &json) override;
//! \copydoc CValueObject::propertyByIndex
virtual QVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const override;
//! \copydoc CValueObject::setPropertyByIndex(variant, index)
virtual void setPropertyByIndex(const QVariant &variant, const BlackMisc::CPropertyIndex &index) override;
//! Register metadata
static void registerMetadata();
//! Members
static const QStringList &jsonMembers();
protected:
//! Default constructor
CModulator() :
CAvionicsBase("default") {}
CModulator::CValueObjectStdTuple("default") {}
//! Constructor
CModulator(const QString &name, const BlackMisc::PhysicalQuantities::CFrequency &activeFrequency, const BlackMisc::PhysicalQuantities::CFrequency &standbyFrequency) :
CAvionicsBase(name), m_frequencyActive(activeFrequency), m_frequencyStandby(standbyFrequency) {}
CModulator::CValueObjectStdTuple(name), m_frequencyActive(activeFrequency), m_frequencyStandby(standbyFrequency) {}
//! \copydoc CValueObject::convertToQString
virtual QString convertToQString(bool i18n = false) const override
@@ -157,15 +139,6 @@ namespace BlackMisc
this->m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz());
}
//! operator ==
bool operator ==(const CModulator &other) const;
//! operator !=
bool operator !=(const CModulator &other) const;
//! \copydoc CValueObject::compareImpl(otherBase)
virtual int compareImpl(const CValueObject &otherBase) const override;
//! COM1
static const QString &NameCom1()
{
@@ -229,15 +202,6 @@ namespace BlackMisc
return f;
}
//! \copydoc CValueObject::marshallFromDbus()
virtual void marshallToDbus(QDBusArgument &argument) const override;
//! \copydoc CValueObject::unmarshallFromDbus()
virtual void unmarshallFromDbus(const QDBusArgument &argument) override;
//! \copydoc CValueObject::getValueHash()
virtual uint getValueHash() const override;
private:
BLACK_ENABLE_TUPLE_CONVERSION(CModulator)
BlackMisc::PhysicalQuantities::CFrequency m_frequencyActive; //!< active frequency