From 417496024e9a012cbac31766f7a73bebe800044c Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 24 Jun 2017 23:43:20 +0200 Subject: [PATCH] Ref T26, Ref T27, added utility function in remote aircraft provider --- src/blackmisc/simulation/remoteaircraftprovider.cpp | 12 ++++++++++++ src/blackmisc/simulation/remoteaircraftprovider.h | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index dfabbc4e0..91a55c1d5 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -16,12 +16,24 @@ namespace BlackMisc { namespace Simulation { + bool IRemoteAircraftProvider::isAircraftInRange(const CCallsign &callsign) const + { + if (callsign.isEmpty()) { return false; } + return this->getAircraftInRange().containsCallsign(callsign); + } + CSimulatedAircraftList CRemoteAircraftAware::getAircraftInRange() const { Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available"); return this->m_remoteAircraftProvider->getAircraftInRange(); } + bool CRemoteAircraftAware::isAircraftInRange(const CCallsign &callsign) const + { + Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available"); + return this->m_remoteAircraftProvider->isAircraftInRange(callsign); + } + int CRemoteAircraftAware::getAircraftInRangeCount() const { Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available"); diff --git a/src/blackmisc/simulation/remoteaircraftprovider.h b/src/blackmisc/simulation/remoteaircraftprovider.h index 4b35ac635..83e057353 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.h +++ b/src/blackmisc/simulation/remoteaircraftprovider.h @@ -68,6 +68,11 @@ namespace BlackMisc //! \threadsafe virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const = 0; + //! Is aircraft in range? + //! \remark convenience function with default implementation + //! \threadsafe + virtual bool isAircraftInRange(const BlackMisc::Aviation::CCallsign &callsign) const; + //! Current snapshot //! \threadsafe virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const = 0; @@ -177,6 +182,9 @@ namespace BlackMisc //! \copydoc IRemoteAircraftProvider::getAircraftInRange BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const; + //! \copydoc IRemoteAircraftProvider::isAircraftInRange + bool isAircraftInRange(const BlackMisc::Aviation::CCallsign &callsign) const; + //! \copydoc IRemoteAircraftProvider::getAircraftInRangeCount int getAircraftInRangeCount() const;