From b68e232f389b7020daa229652b9b2d76700888b2 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 2 Jan 2018 02:24:15 +0100 Subject: [PATCH] Ref T215, utility functions * CServer * ICAO List --- src/blackmisc/aviation/aircrafticaocodelist.cpp | 6 ++++++ src/blackmisc/aviation/aircrafticaocodelist.h | 3 +++ src/blackmisc/network/server.cpp | 5 +++++ src/blackmisc/network/server.h | 6 ++++++ 4 files changed, 20 insertions(+) diff --git a/src/blackmisc/aviation/aircrafticaocodelist.cpp b/src/blackmisc/aviation/aircrafticaocodelist.cpp index 14c0fff04..a7edbcef0 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.cpp +++ b/src/blackmisc/aviation/aircrafticaocodelist.cpp @@ -185,6 +185,12 @@ namespace BlackMisc return codes.front(); } + bool CAircraftIcaoCodeList::containsDesignator(const QString &designator) const + { + if (designator.isEmpty()) { return false; } + return this->contains(&CAircraftIcaoCode::getDesignator, designator); + } + void CAircraftIcaoCodeList::sortByRank() { this->sortBy(&CAircraftIcaoCode::getRank); diff --git a/src/blackmisc/aviation/aircrafticaocodelist.h b/src/blackmisc/aviation/aircrafticaocodelist.h index 7a68383b0..a824c7272 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.h +++ b/src/blackmisc/aviation/aircrafticaocodelist.h @@ -95,6 +95,9 @@ namespace BlackMisc //! Find by designator, then best match by rank CAircraftIcaoCode findFirstByDesignatorAndRank(const QString &designator) const; + //! Contains designator? + bool containsDesignator(const QString &designator) const; + //! Best selection by given pattern, also searches IATA and family information CAircraftIcaoCode smartAircraftIcaoSelector(const CAircraftIcaoCode &icaoPattern) const; diff --git a/src/blackmisc/network/server.cpp b/src/blackmisc/network/server.cpp index ef92263fc..ffce66e71 100644 --- a/src/blackmisc/network/server.cpp +++ b/src/blackmisc/network/server.cpp @@ -152,6 +152,11 @@ namespace BlackMisc return m_timestampMSecsSinceEpoch >= 0; } + bool CServer::isNull() const + { + return this->hasUnspecifiedServerType() && !this->hasName() && m_port < 0; + } + CStatusMessageList CServer::validate() const { static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()})); diff --git a/src/blackmisc/network/server.h b/src/blackmisc/network/server.h index 04e9e0c87..2555a54c5 100644 --- a/src/blackmisc/network/server.h +++ b/src/blackmisc/network/server.h @@ -101,6 +101,9 @@ namespace BlackMisc //! Get name const QString &getName() const { return m_name; } + //! Has name? + bool hasName() const { return !m_name.isEmpty(); } + //! Set name void setName(const QString &name) { m_name = name.trimmed(); } @@ -176,6 +179,9 @@ namespace BlackMisc //! Is connected? bool isConnected() const; + //! NULL? + bool isNull() const; + //! Validate, provide details about issues CStatusMessageList validate() const;