Files
pilotclient/src/blackmisc/aviobase.h
2014-03-26 20:11:31 +01:00

87 lines
2.6 KiB
C++

/* Copyright (C) 2013 VATSIM Community / contributors
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef BLACKMISC_AVIOBASE_H
#define BLACKMISC_AVIOBASE_H
// QtGlobal is required for asserts
#include "blackmisc/valueobject.h"
#include "blackmisc/pqconstants.h"
#include <QtGlobal>
namespace BlackMisc
{
namespace Aviation
{
//! \brief Base class for avionics
class CAvionicsBase : public BlackMisc::CValueObject
{
protected:
QString m_name; //!< name of the unit
//! \brief Constructor
CAvionicsBase(const QString &name) : m_name(name) {}
//! \brief Set name
void setName(const QString &name)
{
this->m_name = name;
}
//! \brief operator ==
bool operator ==(const CAvionicsBase &other) const;
//! \brief operator !=
bool operator !=(const CAvionicsBase &other) const
{
return !(other == (*this));
}
//! \copydoc CValueObject::getMetaTypeId
virtual int getMetaTypeId() const override { return 0; }
//! \copydoc CValueObject::isA
virtual bool isA(int metaTypeId) const override { return this->CValueObject::isA(metaTypeId); }
//! \copydoc CValueObject::compareImpl(otherBase)
virtual int compareImpl(const CValueObject &otherBase) const override;
//! \copydoc CValueObject::marshallToDbus()
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;
public:
//! \brief Virtual destructor
virtual ~CAvionicsBase() {}
//! \brief Name
QString getName() const
{
return this->m_name;
}
//! \brief Are set values valid?
virtual bool validValues() const
{
return true;
}
private:
BLACK_ENABLE_TUPLE_CONVERSION(CAvionicsBase)
};
} // namespace
} // namespace
BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Aviation::CAvionicsBase, (o.m_name))
#endif // guard