Ref T701, matcher functions to used model set in matching, and better resolve ambiguous airline ICAOs

* reduce by telephony/airline name
* search in model set first for airline ICAO

Rational: If a user flies with modelset this most likely represents the airlines needed most in his area
This commit is contained in:
Klaus Basan
2019-07-11 20:59:42 +02:00
committed by Mat Sutcliffe
parent 1d4d3d81d0
commit c9ec28442e
2 changed files with 87 additions and 16 deletions

View File

@@ -100,18 +100,19 @@ namespace BlackCore
const BlackMisc::Aviation::CCallsign &callsign,
const QString &primaryIcao, const QString &secondaryIcao,
bool airlineFromCallsign,
const QString &airlineName, const QString &airlineTelephony,
const BlackMisc::Simulation::CAircraftModelList &models,
BlackMisc::CStatusMessageList *log = nullptr);
//! Return an valid airline ICAO code from a given model list and use webservices if NOT found
//! \remarks model list could be the model set
//! \threadsafe
static BlackMisc::Aviation::CAirlineIcaoCode failoverValidAirlineIcaoDesignatorModelsFirst(
const BlackMisc::Aviation::CCallsign &callsign,
const QString &primaryIcao, const QString &secondaryIcao,
bool airlineFromCallsign,
const BlackMisc::Simulation::CAircraftModelList &models,
BlackMisc::CStatusMessageList *log = nullptr);
static BlackMisc::Aviation::CAirlineIcaoCode failoverValidAirlineIcaoDesignatorModelsFirst(const BlackMisc::Aviation::CCallsign &callsign,
const QString &primaryIcao, const QString &secondaryIcao,
bool airlineFromCallsign,
const QString &airlineName, const QString &airlineTelephony,
const BlackMisc::Simulation::CAircraftModelList &models,
BlackMisc::CStatusMessageList *log = nullptr);
//! Run the network reverse lookup script
//! \threadsafe
@@ -248,11 +249,14 @@ namespace BlackCore
//! \threadsafe
static BlackMisc::Aviation::CAirlineIcaoCode callsignToAirline(const BlackMisc::Aviation::CCallsign &callsign, BlackMisc::CStatusMessageList *log = nullptr);
//! Get the models
const BlackMisc::Simulation::CAircraftModelList &getModelSet() const { return m_modelSet; }
//! \copydoc BlackMisc::Simulation::IAircraftModelSetProvider::getModelSet
virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override { return m_modelSet; }
//! Model set as reference
virtual const BlackMisc::Simulation::CAircraftModelList &getModelSetRef() const { return m_modelSet; }
//! Model set count
int getModelSetCount() const { return m_modelSet.sizeInt(); }
virtual int getModelSetCount() const override { return m_modelSet.sizeInt(); }
//! Models
bool hasModels() const { return !m_modelSet.isEmpty(); }
@@ -352,6 +356,10 @@ namespace BlackCore
//! \threadsafe
static BlackMisc::Simulation::CAircraftModelList ifPossibleReduceByAirline(const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft, const BlackMisc::Simulation::CAircraftModelList &inList, const BlackMisc::Simulation::CAircraftMatcherSetup &setup, const QString &info, bool &reduced, BlackMisc::CStatusMessageList *log);
//! Reduce by airline name/telephone designator
//! \threadsafe
static BlackMisc::Simulation::CAircraftModelList ifPossibleReduceByAirlineNameTelephonyDesignator(const BlackMisc::Aviation::CCallsign &cs, const QString &airlineName, const QString &telephony, const BlackMisc::Simulation::CAircraftModelList &inList, const QString &info, bool &reduced, BlackMisc::CStatusMessageList *log);
//! Installed models by combined code (ie L2J, L1P, ...)
//! \threadsafe
static BlackMisc::Simulation::CAircraftModelList ifPossibleReduceByCombinedType(const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft, const BlackMisc::Simulation::CAircraftModelList &inList, const BlackMisc::Simulation::CAircraftMatcherSetup &setup, bool &reduced, BlackMisc::CStatusMessageList *log);