From f95a0b60cc88b2e2b907b393676a4bd1dede9a75 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 4 Oct 2017 00:40:24 +0200 Subject: [PATCH] Ref T129, utility function to check airline ICAO against swift DB --- src/blackcore/webdataservices.cpp | 6 ++++++ src/blackcore/webdataservices.h | 4 ++++ src/blackmisc/aviation/airlineicaocodelist.cpp | 6 ++++++ src/blackmisc/aviation/airlineicaocodelist.h | 3 +++ 4 files changed, 19 insertions(+) diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index 63a5099b0..da5b41d38 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -600,6 +600,12 @@ namespace BlackCore return CAirlineIcaoCodeList(); } + bool CWebDataServices::containsAirlineIcaoDesignator(const QString &designator) const + { + if (designator.isEmpty()) { return false; } + return this->getAirlineIcaoCodes().containsDesignator(designator); + } + int CWebDataServices::getAirlineIcaoCodesCount() const { if (m_icaoDataReader) { return m_icaoDataReader->getAirlineIcaoCodesCount(); } diff --git a/src/blackcore/webdataservices.h b/src/blackcore/webdataservices.h index 13869d385..9414ea1fd 100644 --- a/src/blackcore/webdataservices.h +++ b/src/blackcore/webdataservices.h @@ -262,6 +262,10 @@ namespace BlackCore //! \threadsafe BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const; + //! Contains the given designator + //! \threadsafe + bool containsAirlineIcaoDesignator(const QString &designator) const; + //! Airline names //! \threadsafe QStringList getAirlineNames() const; diff --git a/src/blackmisc/aviation/airlineicaocodelist.cpp b/src/blackmisc/aviation/airlineicaocodelist.cpp index 9c345ada2..1474fed9a 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.cpp +++ b/src/blackmisc/aviation/airlineicaocodelist.cpp @@ -256,5 +256,11 @@ namespace BlackMisc if (sort) { c.sort(); } return c; } + + bool CAirlineIcaoCodeList::containsDesignator(const QString &designator) const + { + if (designator.isEmpty()) { return false; } + return this->contains(&CAirlineIcaoCode::getDesignator, designator.toUpper()); + } } // ns } // ns diff --git a/src/blackmisc/aviation/airlineicaocodelist.h b/src/blackmisc/aviation/airlineicaocodelist.h index d75933694..68464e158 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.h +++ b/src/blackmisc/aviation/airlineicaocodelist.h @@ -95,6 +95,9 @@ namespace BlackMisc //! String list for completion by name QStringList toNameCompleterStrings(bool sort = true) const; + //! Contains given designator? + bool containsDesignator(const QString &designator) const; + //! From our DB JSON static CAirlineIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true, CAirlineIcaoCodeList *inconsistent = nullptr); };