refs #452, updated aircraft providers

* to update own Aircraft/Airline ICAO codes signature
* get aircraft in range for callsign
This commit is contained in:
Klaus Basan
2015-09-23 18:22:37 +02:00
committed by Mathew Sutcliffe
parent 8dba22f7f0
commit dbcc540313
8 changed files with 36 additions and 14 deletions

View File

@@ -8,9 +8,9 @@
*/
#include "ownaircraftprovider.h"
#include "blackmisc/aviation/aircraft.h"
using namespace BlackMisc::Aviation;
using namespace BlackMisc::Geo;
using namespace BlackMisc::PhysicalQuantities;
namespace BlackMisc
@@ -24,7 +24,7 @@ namespace BlackMisc
return this->m_ownAircraftProvider->getOwnAircraft();
}
Geo::CCoordinateGeodetic COwnAircraftAware::getOwnAircraftPosition() const
CCoordinateGeodetic COwnAircraftAware::getOwnAircraftPosition() const
{
Q_ASSERT_X(this->m_ownAircraftProvider, Q_FUNC_INFO, "No object available");
return this->m_ownAircraftProvider->getOwnAircraftPosition();
@@ -90,10 +90,10 @@ namespace BlackMisc
return this->m_ownAircraftProvider->updateOwnCallsign(callsign);
}
bool COwnAircraftAware::updateOwnIcaoData(const CAircraftIcaoData &icaoData)
bool COwnAircraftAware::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoData, const CAirlineIcaoCode &airlineIcaoCode)
{
Q_ASSERT_X(this->m_ownAircraftProvider, Q_FUNC_INFO, "No object available");
return this->m_ownAircraftProvider->updateOwnIcaoData(icaoData);
return this->m_ownAircraftProvider->updateOwnIcaoCodes(aircraftIcaoData, airlineIcaoCode);
}
} // namespace

View File

@@ -20,7 +20,6 @@ namespace BlackMisc
{
namespace Simulation
{
//! Direct threadsafe in memory access to own aircraft
class BLACKMISC_EXPORT IOwnAircraftProvider
{
@@ -52,7 +51,7 @@ namespace BlackMisc
//! Update ICAO data
//! \threadsafe
virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) = 0;
virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) = 0;
//! Update model
//! \threadsafe
@@ -114,8 +113,8 @@ namespace BlackMisc
//! \copydoc IOwnAircraftProvider::updateOwnCallsign
virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign);
//! \copydoc IOwnAircraftProvider::updateOwnIcaoData
virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData);
//! \copydoc IOwnAircraftProvider::updateOwnIcaoCodes
virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoData, const Aviation::CAirlineIcaoCode &airlineIcaoCode);
//! \copydoc IOwnAircraftProvider::updateOwnModel
virtual bool updateOwnModel(const BlackMisc::Simulation::CAircraftModel &model);
@@ -135,4 +134,6 @@ namespace BlackMisc
} // namespace
} // namespace
Q_DECLARE_INTERFACE(BlackMisc::Simulation::IOwnAircraftProvider, "BlackMisc::Simulation::IOwnAircraftProvider")
#endif // guard

View File

@@ -88,9 +88,9 @@ namespace BlackMisc
return true;
}
bool COwnAircraftProviderDummy::updateOwnIcaoData(const CAircraftIcaoData &icaoData)
bool COwnAircraftProviderDummy::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode)
{
m_ownAircraft.setIcaoInfo(icaoData);
m_ownAircraft.setIcaoCodes(aircraftIcaoCode, airlineIcaoCode);
return true;
}

View File

@@ -64,8 +64,8 @@ namespace BlackMisc
//! \copydoc IOwnAircraftProvider::updateOwnModel
virtual bool updateOwnModel(const BlackMisc::Simulation::CAircraftModel &model) override;
//! \copydoc IOwnAircraftProvider::updateOwnIcaoData
virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) override;
//! \copydoc IOwnAircraftProvider::updateOwnIcaoCodes
virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override;
//! \copydoc IOwnAircraftProvider::updateOwnSituation
virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation) override;

View File

@@ -34,6 +34,12 @@ namespace BlackMisc
return this->m_remoteAircraftProvider->getAircraftInRangeForCallsign(callsign);
}
CAircraftModel CRemoteAircraftAware::getAircraftinRangeModelForCallsign(const CCallsign &callsign) const
{
Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available");
return this->m_remoteAircraftProvider->getAircraftInRangeModelForCallsign(callsign);
}
CAirspaceAircraftSnapshot CRemoteAircraftAware::getLatestAirspaceAircraftSnapshot() const
{
Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available");

View File

@@ -57,6 +57,10 @@ namespace BlackMisc
//! \threadsafe
virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
//! Aircraft model for callsign
//! \threadsafe
virtual BlackMisc::Simulation::CAircraftModel getAircraftInRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
//! Rendered aircraft situations (per callsign, time history)
//! \threadsafe
virtual BlackMisc::Aviation::CAircraftSituationList remoteAircraftSituations(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
@@ -102,7 +106,7 @@ namespace BlackMisc
//! Connect signals to slot receiver. As the interface is no QObject, slots can not be connected directly.
//! In order to disconnect a list of connections is provided, which have to be disconnected manually.
//! \note connections are direct as functors have no parameter for connection type
//! \note receiver is required for connection type
virtual QList<QMetaObject::Connection> connectRemoteAircraftProviderSignals(
QObject *receiver,
std::function<void(const BlackMisc::Aviation::CAircraftSituation &)> addedSituationSlot,
@@ -126,6 +130,9 @@ namespace BlackMisc
//! \copydoc IRemoteAircraftProvider::getAircraftInRangeForCallsign
virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const Aviation::CCallsign &callsign) const;
//! \copydoc IRemoteAircraftProvider::getAircraftinRangeModelForCallsign
virtual BlackMisc::Simulation::CAircraftModel getAircraftinRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
//! \copydoc IRemoteAircraftProvider::getLatestAirspaceAircraftSnapshot
virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const;
@@ -168,6 +175,6 @@ namespace BlackMisc
} // namespace
} // namespace
Q_DECLARE_INTERFACE(BlackMisc::Simulation::IRemoteAircraftProvider, "BlackMisc::Simulation::IRemoteAircraftProvider:IRemoteAircraftProvider")
Q_DECLARE_INTERFACE(BlackMisc::Simulation::IRemoteAircraftProvider, "BlackMisc::Simulation::IRemoteAircraftProvider")
#endif // guard

View File

@@ -34,6 +34,11 @@ namespace BlackMisc
return m_aircraft.findFirstByCallsign(callsign);
}
CAircraftModel CRemoteAircraftProviderDummy::getAircraftInRangeModelForCallsign(const CCallsign &callsign) const
{
return getAircraftInRangeForCallsign(callsign).getModel();
}
CAirspaceAircraftSnapshot CRemoteAircraftProviderDummy::getLatestAirspaceAircraftSnapshot() const
{
return CAirspaceAircraftSnapshot(m_aircraft);

View File

@@ -41,6 +41,9 @@ namespace BlackMisc
//! IRemoteAircraftProvider::getAircraftInRangeForCallsign
virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
//! IRemoteAircraftProvider::getAircraftInRangeModelForCallsign
virtual BlackMisc::Simulation::CAircraftModel getAircraftInRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
//! \copydoc IRemoteAircraftProvider::getLatestAirspaceAircraftSnapshot
virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const override;