From 84ea7faacabc54d8eb12169a569a14273d832f45 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 5 Feb 2018 01:48:47 +0100 Subject: [PATCH] Ref T242, utility functions for improved matching --- src/blackmisc/simulation/aircraftmodellist.cpp | 13 +++++++++++++ src/blackmisc/simulation/aircraftmodellist.h | 14 ++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/blackmisc/simulation/aircraftmodellist.cpp b/src/blackmisc/simulation/aircraftmodellist.cpp index 6be797c7e..db9052458 100644 --- a/src/blackmisc/simulation/aircraftmodellist.cpp +++ b/src/blackmisc/simulation/aircraftmodellist.cpp @@ -10,6 +10,7 @@ #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/matchingutils.h" #include "blackmisc/aviation/aircrafticaocode.h" +#include "blackmisc/aviation/airlineicaocode.h" #include "blackmisc/aviation/callsign.h" #include "blackmisc/aviation/livery.h" #include "blackmisc/compare.h" @@ -697,6 +698,18 @@ namespace BlackMisc return designators; } + QSet CAircraftModelList::getAircraftDesignatorsForAirline(const CAirlineIcaoCode &airlineCode) const + { + QSet designators; + if (!airlineCode.hasValidDesignator()) { return designators; } + for (const CAircraftModel &model : *this) + { + if (model.getAirlineIcaoCode() != airlineCode) { continue; } + designators.insert(model.getAircraftIcaoCodeDesignator()); + } + return designators; + } + QSet CAircraftModelList::getAirlineDesignators() const { QSet designators; diff --git a/src/blackmisc/simulation/aircraftmodellist.h b/src/blackmisc/simulation/aircraftmodellist.h index dd6f2efe4..fbb28ec78 100644 --- a/src/blackmisc/simulation/aircraftmodellist.h +++ b/src/blackmisc/simulation/aircraftmodellist.h @@ -12,16 +12,14 @@ #ifndef BLACKMISC_SIMULATION_AIRCRAFTMODELLIST_H #define BLACKMISC_SIMULATION_AIRCRAFTMODELLIST_H -#include "blackmisc/aviation/airlineicaocode.h" +#include "blackmisc/simulation/aircraftmodel.h" +#include "blackmisc/simulation/distributorlist.h" +#include "blackmisc/simulation/simulatorinfo.h" #include "blackmisc/blackmiscexport.h" #include "blackmisc/collection.h" #include "blackmisc/db/datastoreobjectlist.h" #include "blackmisc/orderablelist.h" #include "blackmisc/sequence.h" -#include "blackmisc/simulation/aircraftmodel.h" -#include "blackmisc/simulation/distributor.h" -#include "blackmisc/simulation/distributorlist.h" -#include "blackmisc/simulation/simulatorinfo.h" #include "blackmisc/statusmessagelist.h" #include "blackmisc/variant.h" @@ -36,9 +34,9 @@ namespace BlackMisc { namespace Aviation { - class CAircraftIcaoCode; class CCallsign; class CLivery; + class CAirlineIcao; } namespace Simulation @@ -267,6 +265,10 @@ namespace BlackMisc //! Aircraft designators QSet getAircraftDesignators() const; + //! Aircraft designators for airline + //! \remark gives all aircraft flown by an airline + QSet getAircraftDesignatorsForAirline(const Aviation::CAirlineIcaoCode &airlineCode) const; + //! Airline designators QSet getAirlineDesignators() const;