refs #678, fixes bug reported by MS + improvements

* made clients threadsafe
* use clients to decide if model string is queried
* init aircraft/airline ICAO codes with DB data where possible
* Allow acces to log utility functions of matcher
This commit is contained in:
Klaus Basan
2016-06-23 20:10:42 +02:00
parent 2dec348c8c
commit 5b506e7bd1
4 changed files with 236 additions and 123 deletions

View File

@@ -74,7 +74,15 @@ namespace BlackCore
//! Try to find the corresponding data in DB and get best information for following matching
//! \threadsafe
static BlackMisc::Simulation::CAircraftModel reverseLookup(const BlackMisc::Simulation::CAircraftModel &modelToLookup, const QString &liveryInfo, BlackMisc::CStatusMessageList *log = nullptr);
static BlackMisc::Simulation::CAircraftModel reverseLookup(const BlackMisc::Simulation::CAircraftModel &modelToLookup, const QString &networkLiveryInfo, BlackMisc::CStatusMessageList *log = nullptr);
//! Try to find the DB corresponding ICAO code
//! \threadsafe
static BlackMisc::Aviation::CAircraftIcaoCode reverseLookupAircraftIcao(const QString &icaoDesignator, const BlackMisc::Aviation::CCallsign &callsign = BlackMisc::Aviation::CCallsign(), BlackMisc::CStatusMessageList *log = nullptr);
//! Try to find the DB corresponding ICAO code
//! \threadsafe
static BlackMisc::Aviation::CAirlineIcaoCode reverseLookupAirlineIcao(const QString &icaoDesignator, const BlackMisc::Aviation::CCallsign &callsign = BlackMisc::Aviation::CCallsign(), BlackMisc::CStatusMessageList *log = nullptr);
//! Get the models
BlackMisc::Simulation::CAircraftModelList getModelSet() const { return m_modelSet; }
@@ -88,6 +96,16 @@ namespace BlackCore
//! Set default model
void setDefaultModel(const BlackMisc::Simulation::CAircraftModel &defaultModel);
//! Add to log. if applicable
//! \threadsafe
static void logDetails(BlackMisc::CStatusMessageList *log, const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft,
const QString &message, BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo);
//! Add to log. if applicable
//! \threadsafe
static void logDetails(BlackMisc::CStatusMessageList *log, const BlackMisc::Aviation::CCallsign &callsign,
const QString &message, BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo);
private:
//! Search in models by key (aka model string)
//! \threadsafe
@@ -121,20 +139,6 @@ namespace BlackCore
//! \threadsafe
static BlackMisc::Simulation::CAircraftModelList ifPossibleReduceByMilitaryFlag(const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft, bool military, const BlackMisc::Simulation::CAircraftModelList &inList, bool &reduced, BlackMisc::CStatusMessageList *log);
//! Add to log. if applicable
//! \treadsafe
static void logDetails(BlackMisc::CStatusMessageList *log,
const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft,
const QString &message,
BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo);
//! Add to log. if applicable
//! \treadsafe
static void logDetails(BlackMisc::CStatusMessageList *log,
const BlackMisc::Aviation::CCallsign &callsign,
const QString &message,
BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo);
MatchingMode m_matchingMode = All;
BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< model to be used as default model
BlackMisc::Simulation::CAircraftModelList m_modelSet; //!< models used for model matching