diff --git a/src/blackmisc/nwclientlist.cpp b/src/blackmisc/nwclientlist.cpp index 5698859e1..251822c63 100644 --- a/src/blackmisc/nwclientlist.cpp +++ b/src/blackmisc/nwclientlist.cpp @@ -10,6 +10,8 @@ #include "nwclientlist.h" #include "predicates.h" +using namespace BlackMisc::Aviation; + namespace BlackMisc { namespace Network @@ -39,5 +41,21 @@ namespace BlackMisc registerMetaValueType(); } + /* + * Find by callsign + */ + CClientList CClientList::findByCallsign(const CCallsign &callsign) const + { + return findBy(&CClient::getCallsign, callsign); + } + + /* + * Find by callsign + */ + CClient CClientList::findFirstByCallsign(const CCallsign &callsign, const CClient &ifNotFound) const + { + return this->findByCallsign(callsign).frontOrDefault(ifNotFound); + } + } // namespace } // namespace diff --git a/src/blackmisc/nwclientlist.h b/src/blackmisc/nwclientlist.h index b30191a08..597cb918e 100644 --- a/src/blackmisc/nwclientlist.h +++ b/src/blackmisc/nwclientlist.h @@ -15,6 +15,7 @@ #include "nwclient.h" #include "sequence.h" #include "collection.h" +#include "blackmisc/avcallsign.h" #include #include #include @@ -39,6 +40,11 @@ namespace BlackMisc //! Register metadata static void registerMetadata(); + //! Find by callsign + CClientList findByCallsign(const BlackMisc::Aviation::CCallsign &callsign) const; + + //! First by callsign + CClient findFirstByCallsign(const BlackMisc::Aviation::CCallsign &callsign, const CClient &ifNotFound = CClient()) const; }; } //namespace