/* Copyright (C) 2015 * swift project Community / Contributors * * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, * including this file, may be copied, modified, propagated, or distributed except according to the terms * contained in the LICENSE file. */ //! \file #ifndef BLACKMISC_SIMULATION_OWNAIRCRAFTPROVIDERDUMMY_H #define BLACKMISC_SIMULATION_OWNAIRCRAFTPROVIDERDUMMY_H #include "blackmisc/aviation/aircraftparts.h" #include "blackmisc/aviation/airlineicaocode.h" #include "blackmisc/aviation/comsystem.h" #include "blackmisc/aviation/selcal.h" #include "blackmisc/blackmiscexport.h" #include "blackmisc/geo/coordinategeodetic.h" #include "blackmisc/identifier.h" #include "blackmisc/pq/frequency.h" #include "blackmisc/pq/length.h" #include "blackmisc/simulation/aircraftmodel.h" #include "blackmisc/simulation/ownaircraftprovider.h" #include "blackmisc/simulation/simulatedaircraft.h" #include #include namespace BlackMisc { namespace Aviation { class CAircraftIcaoCode; class CAircraftSituation; class CCallsign; class CTransponder; } namespace Simulation { //! For testing class BLACKMISC_EXPORT COwnAircraftProviderDummy : public QObject, public IOwnAircraftProvider { Q_OBJECT public: //! Constructor COwnAircraftProviderDummy() = default; //! Singleton static COwnAircraftProviderDummy *instance(); //! \copydoc IOwnAircraftProvider::getOwnAircraft virtual CSimulatedAircraft getOwnAircraft() const override; //! \copydoc IOwnAircraftProvider::getOwnAircraftPosition virtual BlackMisc::Geo::CCoordinateGeodetic getOwnAircraftPosition() const override; //! \copydoc IOwnAircraftProvider::getOwnAircraftSituation virtual BlackMisc::Aviation::CAircraftSituation getOwnAircraftSituation() const override; //! \copydoc IOwnAircraftProvider::getOwnAircraftParts virtual BlackMisc::Aviation::CAircraftParts getOwnAircraftParts() const override; //! \copydoc IOwnAircraftProvider::getOwnAircraftModel virtual BlackMisc::Simulation::CAircraftModel getOwnAircraftModel() const override; //! \copydoc IOwnAircraftProvider::getDistanceToOwnAircraft virtual BlackMisc::PhysicalQuantities::CLength getDistanceToOwnAircraft(const BlackMisc::Geo::ICoordinateGeodetic &position) const override; public slots: //! \copydoc IOwnAircraftProvider::updateCockpit virtual bool updateCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const BlackMisc::CIdentifier &originator) override; //! \copydoc IOwnAircraftProvider::updateActiveComFrequency virtual bool updateActiveComFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ComUnit comUnit, const BlackMisc::CIdentifier &originator) override; //! \copydoc IOwnAircraftProvider::updateSelcal virtual bool updateSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override; //! \copydoc IOwnAircraftProvider::updateOwnCallsign virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign) override; //! \copydoc IOwnAircraftProvider::updateOwnModel virtual bool updateOwnModel(const BlackMisc::Simulation::CAircraftModel &model) override; //! \copydoc IOwnAircraftProvider::updateOwnIcaoCodes virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override; //! \copydoc IOwnAircraftProvider::updateOwnSituation virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation) override; //! \copydoc IOwnAircraftProvider::updateOwnParts virtual bool updateOwnParts(const BlackMisc::Aviation::CAircraftParts &parts) override; private: BlackMisc::Simulation::CSimulatedAircraft m_ownAircraft; mutable QReadWriteLock m_lock; //!< lock for m_ownAircraft }; } // namespace } // namespace #endif // guard