From b047004470d766e6debc0d9dd11b4f5f988e3351 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 7 Oct 2017 02:47:57 +0200 Subject: [PATCH] Ref T129, added functions for swift DB reader / web data services * added getAirlineIcaoCodeForUniqueDesignatorOrDefault and getAirlineIcaoCodeForUniqueIataCodeOrDefault from reader/web data services * rearranged order of functions in ICAO reader * added some more functions like "containsXX" in reader --- src/blackcore/db/icaodatareader.cpp | 25 +++++++++++++++ src/blackcore/db/icaodatareader.h | 48 ++++++++++++++++++++--------- src/blackcore/webdataservices.cpp | 17 +++++++++- src/blackcore/webdataservices.h | 8 +++++ 4 files changed, 83 insertions(+), 15 deletions(-) diff --git a/src/blackcore/db/icaodatareader.cpp b/src/blackcore/db/icaodatareader.cpp index e3e39dd28..781e2d7ed 100644 --- a/src/blackcore/db/icaodatareader.cpp +++ b/src/blackcore/db/icaodatareader.cpp @@ -62,6 +62,11 @@ namespace BlackCore return getAircraftIcaoCodes().findByDesignator(designator); } + CAircraftIcaoCodeList CIcaoDataReader::getAircraftIcaoCodesForIataCode(const QString &iataCode) const + { + return getAircraftIcaoCodes().findByIataCode(iataCode); + } + CAircraftIcaoCode CIcaoDataReader::getAircraftIcaoCodeForDbKey(int key) const { return getAircraftIcaoCodes().findByKey(key); @@ -98,6 +103,26 @@ namespace BlackCore return this->getAirlineIcaoCodes().findByVDesignator(designator); } + bool CIcaoDataReader::containsAirlineIcaoDesignator(const QString &designator) const + { + return this->getAirlineIcaoCodes().containsVDesignator(designator); + } + + CAirlineIcaoCode CIcaoDataReader::getAirlineIcaoCodeForUniqueDesignatorOrDefault(const QString &designator, bool preferOperatingAirlines) const + { + return this->getAirlineIcaoCodes().findByUniqueVDesignatorOrDefault(designator, preferOperatingAirlines); + } + + CAirlineIcaoCodeList CIcaoDataReader::getAirlineIcaoCodesForIataCode(const QString &iataCode) const + { + return this->getAirlineIcaoCodes().findByIataCode(iataCode); + } + + CAirlineIcaoCode CIcaoDataReader::getAirlineIcaoCodeForUniqueIataCodeOrDefault(const QString &iataCode) const + { + return this->getAirlineIcaoCodes().findByUniqueIataCodeOrDefault(iataCode); + } + CAirlineIcaoCode CIcaoDataReader::getAirlineIcaoCodeForDbKey(int key) const { return this->getAirlineIcaoCodes().findByKey(key); diff --git a/src/blackcore/db/icaodatareader.h b/src/blackcore/db/icaodatareader.h index 80b684f37..2f962836d 100644 --- a/src/blackcore/db/icaodatareader.h +++ b/src/blackcore/db/icaodatareader.h @@ -49,6 +49,10 @@ namespace BlackCore //! \threadsafe BlackMisc::Aviation::CAircraftIcaoCodeList getAircraftIcaoCodes() const; + //! Get aircraft ICAO information count + //! \threadsafe + int getAircraftIcaoCodesCount() const; + //! Get aircraft ICAO information for designator //! \threadsafe BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCodeForDesignator(const QString &designator) const; @@ -57,14 +61,14 @@ namespace BlackCore //! \threadsafe BlackMisc::Aviation::CAircraftIcaoCodeList getAircraftIcaoCodesForDesignator(const QString &designator) const; + //! Get aircraft ICAO information for IATA code + //! \threadsafe + BlackMisc::Aviation::CAircraftIcaoCodeList getAircraftIcaoCodesForIataCode(const QString &iataCode) const; + //! Get aircraft ICAO information for key //! \threadsafe BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCodeForDbKey(int key) const; - //! Get airline ICAO information - //! \threadsafe - BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const; - //! Get best match for incomplete aircraft ICAO code //! \threadsafe BlackMisc::Aviation::CAircraftIcaoCode smartAircraftIcaoSelector(const BlackMisc::Aviation::CAircraftIcaoCode &icaoPattern) const; @@ -85,26 +89,42 @@ namespace BlackCore //! \threadsafe BlackMisc::CCountry getCountryForName(const QString &name) const; - //! Get airline ICAO information for designator + //! Get airline ICAO information + //! \threadsafe + BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const; + + //! Get airline ICAO information count + //! \threadsafe + int getAirlineIcaoCodesCount() const; + + //! \copydoc BlackMisc::Aviation::CAirlineIcaoCodeList::findByVDesignator //! \threadsafe BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodesForDesignator(const QString &designator) const; + //! \copydoc BlackMisc::Aviation::CAirlineIcaoCodeList::findByVDesignator + //! \threadsafe + bool containsAirlineIcaoDesignator(const QString &designator) const; + + //! \copydoc BlackMisc::Aviation::CAirlineIcaoCodeList::findByUniqueVDesignatorOrDefault + //! \threadsafe + BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForUniqueDesignatorOrDefault(const QString &designator, bool preferOperatingAirlines) const; + + //! \copydoc BlackMisc::Aviation::CAirlineIcaoCodeList::findByIataCode + //! \threadsafe + BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodesForIataCode(const QString &iataCode) const; + + //! \copydoc BlackMisc::Aviation::CAirlineIcaoCodeList::findByUniqueIataCodeOrDefault + //! \threadsafe + BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForUniqueIataCodeOrDefault(const QString &iataCode) const; + //! Get airline ICAO information for key //! \threadsafe BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForDbKey(int key) const; - //! Get best match for incomplete airline ICAO code + //! Get best match for airline ICAO code //! \threadsafe BlackMisc::Aviation::CAirlineIcaoCode smartAirlineIcaoSelector(const BlackMisc::Aviation::CAirlineIcaoCode &icaoPattern, const BlackMisc::Aviation::CCallsign &callsign = BlackMisc::Aviation::CCallsign()) const; - //! Get aircraft ICAO information count - //! \threadsafe - int getAircraftIcaoCodesCount() const; - - //! Get airline ICAO information count - //! \threadsafe - int getAirlineIcaoCodesCount() const; - //! All data read? //! \threadsafe bool areAllDataRead() const; diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index da5b41d38..f32da7493 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -603,7 +603,22 @@ namespace BlackCore bool CWebDataServices::containsAirlineIcaoDesignator(const QString &designator) const { if (designator.isEmpty()) { return false; } - return this->getAirlineIcaoCodes().containsDesignator(designator); + if (m_icaoDataReader) { return m_icaoDataReader->containsAirlineIcaoDesignator(designator); } + return false; + } + + CAirlineIcaoCode CWebDataServices::getAirlineIcaoCodeForUniqueDesignatorOrDefault(const QString &designator, bool preferOperatingAirlines) const + { + if (designator.isEmpty()) { return CAirlineIcaoCode(); } + if (m_icaoDataReader) { return m_icaoDataReader->getAirlineIcaoCodeForUniqueDesignatorOrDefault(designator, preferOperatingAirlines); } + return CAirlineIcaoCode(); + } + + CAirlineIcaoCode CWebDataServices::getAirlineIcaoCodeForUniqueIataCodeOrDefault(const QString &iataCode) const + { + if (iataCode.isEmpty()) { return CAirlineIcaoCode(); } + if (m_icaoDataReader) { return m_icaoDataReader->getAirlineIcaoCodeForUniqueIataCodeOrDefault(iataCode); } + return CAirlineIcaoCode(); } int CWebDataServices::getAirlineIcaoCodesCount() const diff --git a/src/blackcore/webdataservices.h b/src/blackcore/webdataservices.h index 9414ea1fd..b1d7a0b06 100644 --- a/src/blackcore/webdataservices.h +++ b/src/blackcore/webdataservices.h @@ -266,6 +266,14 @@ namespace BlackCore //! \threadsafe bool containsAirlineIcaoDesignator(const QString &designator) const; + //! ICAO code if unique, otherwise default + //! \threadsafe + BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForUniqueDesignatorOrDefault(const QString &designator, bool preferOperatingAirlines) const; + + //! ICAO code if unique, otherwise default + //! \threadsafe + BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForUniqueIataCodeOrDefault(const QString &iataCode) const; + //! Airline names //! \threadsafe QStringList getAirlineNames() const;