swift
|
Class monitoring and analyzing (closest aircraft, outdated aircraft / watchdog) airspace in background. More...
Public Types | |
using | CCallsignTimestampSet = QHash< swift::misc::aviation::CCallsign, qint64 > |
List of callsigns and their last activity. | |
Signals | |
void | timeoutAircraft (const swift::misc::aviation::CCallsign &callsign) |
Callsign has timed out. | |
void | timeoutAtc (const swift::misc::aviation::CCallsign &callsign) |
Callsign has timed out. | |
void | airspaceAircraftSnapshot (const swift::misc::simulation::CAirspaceAircraftSnapshot &snapshot) |
New aircraft snapshot. | |
![]() | |
void | aboutToStart () |
Emitted when the task is about to start. | |
void | finished () |
Emitted when the task is finished. More... | |
Public Member Functions | |
CAirspaceAnalyzer (swift::misc::simulation::IOwnAircraftProvider *ownAircraftProvider, fsd::CFSDClient *fsdClient, CAirspaceMonitor *airspaceMonitorParent) | |
Constructor. | |
virtual | ~CAirspaceAnalyzer () |
Destructor. | |
swift::misc::simulation::CAirspaceAircraftSnapshot | getLatestAirspaceAircraftSnapshot () const |
Get the latest snapshot. More... | |
void | setSimulatorRenderRestrictionsChanged (bool restricted, bool enabled, int maxAircraft, const swift::misc::physical_quantities::CLength &maxRenderedDistance) |
Render restrictions in simulator. | |
void | setEnabledWatchdog (bool enabled) |
Enable/disable watchdog. More... | |
void | clear () |
Clear. | |
![]() | |
CContinuousWorker (QObject *owner, const QString &name) | |
Constructor. More... | |
void | start (QThread::Priority priority=QThread::InheritPriority) |
Starts a thread and moves the worker into it. | |
void | quit () noexcept final |
Stops the thread the next time around its event loop. The thread and the worker will then be deleted. More... | |
void | quitAndWait () noexcept final |
Calls quit() and blocks until the thread is finished. More... | |
bool | isEnabled () const |
Enabled (running)? More... | |
void | setEnabled (bool enabled) |
Enabled (running)? More... | |
void | startUpdating (int updateTimeSecs) |
Start updating (start/stop timer) More... | |
const QString & | getName () |
Name of the worker. | |
const QObject * | owner () const |
Owner of the worker. | |
![]() | |
template<typename T , typename F > | |
void | then (T *context, F functor) |
Connects to a functor or method which will be called when the task is finished. More... | |
template<typename F > | |
void | then (F functor) |
Connects to a functor which will be called when the task is finished. More... | |
bool | isFinished () const |
Returns true if the task has finished. More... | |
template<typename F > | |
void | doIfFinished (F functor) const |
Executes some code (in the caller's thread) if the task has finished. More... | |
template<typename F > | |
void | doIfNotFinished (F functor) const |
Executes some code (in the caller's thread) if the task has not finished. More... | |
template<typename F1 , typename F2 > | |
void | doIfFinishedElse (F1 ifFunctor, F2 elseFunctor) const |
Executes some code (in the caller's thread) if the task has finished and some different code if it has not finished. More... | |
void | waitForFinished () noexcept |
Blocks until the task is finished. More... | |
void | abandon () noexcept |
Notify the task that its result is no longer needed, so it can finish early. More... | |
void | abandonAndWait () noexcept |
Convenience to call abandon() followed by waitForFinished(). | |
![]() | |
void | setOwnAircraftProvider (IOwnAircraftProvider *provider) |
Set the provider. | |
CSimulatedAircraft | getOwnAircraft () const |
Own aircraft. More... | |
aviation::CCallsign | getOwnCallsign () const |
Own aircraft's callsign. More... | |
aviation::CComSystem | getOwnComSystem (aviation::CComSystem::ComUnit unit) const |
Own aircraft COM unit. More... | |
aviation::CTransponder | getOwnTransponder () const |
Own aircraft XPDR. More... | |
swift::misc::geo::CCoordinateGeodetic | getOwnAircraftPosition () const |
Own aircraft's position. More... | |
aviation::CAircraftSituation | getOwnAircraftSituation () const |
Own aircraft's position. More... | |
aviation::CAircraftParts | getOwnAircraftParts () const |
Own aircraft's parts. More... | |
swift::misc::simulation::CAircraftModel | getOwnAircraftModel () const |
Own aircraft model. More... | |
swift::misc::physical_quantities::CLength | getDistanceToOwnAircraft (const swift::misc::geo::ICoordinateGeodetic &position) const |
Distance to own aircraft. More... | |
bool | updateCockpit (const swift::misc::simulation::CSimulatedAircraft &aircraft, const swift::misc::CIdentifier &originator) |
bool | updateCockpit (const aviation::CComSystem &com1, const aviation::CComSystem &com2, const aviation::CTransponder &transponder, const swift::misc::CIdentifier &originator) |
bool | updateActiveComFrequency (const swift::misc::physical_quantities::CFrequency &frequency, aviation::CComSystem::ComUnit comUnit, const swift::misc::CIdentifier &originator) |
Update cockpit, but only send signals when applicable. More... | |
bool | updateSelcal (const aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator) |
Update cockpit, but only send signals when applicable. More... | |
bool | updateOwnCallsign (const aviation::CCallsign &callsign) |
Update aircraft's callsign. More... | |
bool | updateOwnIcaoCodes (const aviation::CAircraftIcaoCode &aircraftIcaoData, const aviation::CAirlineIcaoCode &airlineIcaoCode) |
Update ICAO data. More... | |
bool | updateOwnModel (const swift::misc::simulation::CAircraftModel &model) |
Update model. More... | |
bool | updateOwnSituation (const aviation::CAircraftSituation &situation) |
Update own situation. More... | |
bool | updateOwnParts (const aviation::CAircraftParts &parts) |
Update own parts. More... | |
bool | updateOwnCG (const physical_quantities::CLength &cg) |
Update own aircraft's CG (aka vertical offset) More... | |
![]() | |
virtual | ~CRemoteAircraftAware () |
Destructor. | |
CSimulatedAircraftList | getAircraftInRange () const |
All remote aircraft. More... | |
bool | isAircraftInRange (const aviation::CCallsign &callsign) const |
Is aircraft in range? More... | |
bool | isVtolAircraft (const aviation::CCallsign &callsign) const |
Is VTOL aircraft? More... | |
int | getAircraftInRangeCount () const |
Count remote aircraft. More... | |
aviation::CCallsignSet | getAircraftInRangeCallsigns () const |
Unique callsigns for aircraft in range. More... | |
CSimulatedAircraft | getAircraftInRangeForCallsign (const aviation::CCallsign &callsign) const |
Aircraft for callsign. More... | |
CAircraftModel | getAircraftInRangeModelForCallsign (const aviation::CCallsign &callsign) const |
Aircraft model for callsign. More... | |
CAirspaceAircraftSnapshot | getLatestAirspaceAircraftSnapshot () const |
Current snapshot. More... | |
aviation::CAircraftSituationList | remoteAircraftSituations (const aviation::CCallsign &callsign) const |
Rendered aircraft situations (per callsign, time history) More... | |
aviation::CAircraftSituation | remoteAircraftSituation (const aviation::CCallsign &callsign, int index) const |
Rendered aircraft situations (per callsign and index) More... | |
aviation::CAircraftSituationList | latestRemoteAircraftSituations () const |
Latest aircraft situation for all callsigns. More... | |
aviation::CAircraftSituationList | latestOnGroundProviderElevations () const |
Latest aircraft situation "on ground" having a provider elevation. More... | |
int | remoteAircraftSituationsCount (const aviation::CCallsign &callsign) const |
Number of remote aircraft situations for callsign. More... | |
aviation::CAircraftPartsList | remoteAircraftParts (const aviation::CCallsign &callsign) const |
All parts (per callsign, time history) More... | |
int | remoteAircraftPartsCount (const aviation::CCallsign &callsign) const |
All parts (per callsign, time history) More... | |
aviation::CAircraftSituationChangeList | remoteAircraftSituationChanges (const aviation::CCallsign &callsign) const |
Aircraft changes. More... | |
aviation::CCallsignSet | remoteAircraftSupportingParts () const |
Remote aircraft supporting parts. More... | |
bool | isRemoteAircraftSupportingParts (const aviation::CCallsign &callsign) const |
Is remote aircraft supporting parts? More... | |
int | getRemoteAircraftSupportingPartsCount () const |
Number of aircraft supporting parts. More... | |
bool | updateAircraftEnabled (const aviation::CCallsign &callsign, bool enabledForRendering) |
Enable/disable aircraft and follow up logic like sending signals. More... | |
bool | setAircraftEnabledFlag (const aviation::CCallsign &callsign, bool enabledForRendering) |
Just set enable/disable aircraft flag, no further logic. More... | |
bool | updateMultipleAircraftEnabled (const aviation::CCallsignSet &callsigns, bool enabledForRendering) |
Enable/disable aircraft. More... | |
bool | updateAircraftModel (const aviation::CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator) |
Change model. More... | |
bool | updateAircraftNetworkModel (const aviation::CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator) |
Change network model. More... | |
bool | updateAircraftRendered (const aviation::CCallsign &callsign, bool rendered) |
Set aircraft rendered. More... | |
bool | updateMultipleAircraftRendered (const aviation::CCallsignSet &callsigns, bool rendered) |
Set aircraft rendered. More... | |
int | updateAircraftGroundElevation (const aviation::CCallsign &callsign, const geo::CElevationPlane &elevation, aviation::CAircraftSituation::GndElevationInfo info, bool *updateAircraftGroundElevation) |
Update the ground elevation. More... | |
bool | updateCG (const aviation::CCallsign &callsign, const physical_quantities::CLength &cg) |
Update the CG. More... | |
aviation::CCallsignSet | updateCGForModel (const QString &modelString, const physical_quantities::CLength &cg) |
Update the CG for this model string. More... | |
bool | updateCGAndModelString (const aviation::CCallsign &callsign, const physical_quantities::CLength &cg, const QString &modelString) |
Update the CG and model string. More... | |
void | updateMarkAllAsNotRendered () |
Mark all as not rendered. More... | |
int | aircraftSituationsAdded () const |
Number of situations added. More... | |
int | aircraftPartsAdded () const |
Number of parts added. More... | |
qint64 | situationsLastModified (const aviation::CCallsign &callsign) const |
When last modified. More... | |
qint64 | partsLastModified (const aviation::CCallsign &callsign) const |
When last modified. More... | |
geo::CElevationPlane | averageElevationOfNonMovingAircraft (const aviation::CAircraftSituation &reference, const physical_quantities::CLength &range, int minValues=1) const |
Average elevation of aircraft in given range, which are NOT moving. More... | |
void | setRemoteAircraftProvider (IRemoteAircraftProvider *remoteAircraftProvider) |
Set remote aircraft provider. | |
IRemoteAircraftProvider * | getRemoteAircraftProvider () const |
Get the aircraft provider. | |
Additional Inherited Members | |
![]() | |
static const QStringList & | getLogCategories () |
Log categories. | |
static const QSet< CWorkerBase * > & | allWorkers () |
All workers currently existing. | |
![]() | |
virtual void | initialize () |
Called when the thread is started. | |
virtual void | cleanup () |
Called when the thread is finished. | |
virtual void | beforeQuit () noexcept |
Called before quit is called. More... | |
virtual unsigned long | waitTimeoutMs () const |
Wait time for quitAndWait, 0 means not waiting. | |
void | stopUpdateTimer () |
Safely stop update time. | |
![]() | |
CWorkerBase () | |
Constructor. | |
~CWorkerBase () | |
Destructor. | |
bool | isAbandoned () const |
For the task to check whether it can finish early. More... | |
bool | hasStarted () const |
True if the worker has started. | |
void | setStarted () |
Mark the task as started. | |
void | setFinished () |
Mark the task as finished. | |
![]() | |
COwnAircraftAware (IOwnAircraftProvider *ownAircraftProvider) | |
Constructor. | |
![]() | |
IProviderAware (IOwnAircraftProvider *provider=nullptr) | |
Ctor. | |
virtual | ~IProviderAware () |
Dtor. | |
bool | hasProvider () const |
Has provider? | |
IOwnAircraftProvider * | getProvider () const |
Provider. | |
void | setProvider (IOwnAircraftProvider *provider) |
Set the provider. More... | |
IOwnAircraftProvider * | provider () |
Provider. | |
const IOwnAircraftProvider * | provider () const |
Const provider. | |
![]() | |
CRemoteAircraftAware () | |
Default constructor. | |
CRemoteAircraftAware (IRemoteAircraftProvider *remoteAircraftProvider) | |
Constructor. | |
![]() | |
IProviderAware (IRemoteAircraftProvider *provider=nullptr) | |
Ctor. | |
virtual | ~IProviderAware () |
Dtor. | |
bool | hasProvider () const |
Has provider? | |
IRemoteAircraftProvider * | getProvider () const |
Provider. | |
void | setProvider (IRemoteAircraftProvider *provider) |
Set the provider. More... | |
IRemoteAircraftProvider * | provider () |
Provider. | |
const IRemoteAircraftProvider * | provider () const |
Const provider. | |
![]() | |
QTimer | m_updateTimer { this } |
timer which can be used by implementing classes | |
Class monitoring and analyzing (closest aircraft, outdated aircraft / watchdog) airspace in background.
Watchdog functionality: This class was introduced due to a flaw in the VATSIM server implementation: Every client needs to send an add/delete packet on its own to inform other clients nearby. The server does not take care of that. When a client crashes, no delete packet is ever sent. This class therefore monitors callsigns and emits a timeout signal if it wasn't resetted during the specified timeout value.
Definition at line 49 of file airspaceanalyzer.h.
CAirspaceAircraftSnapshot swift::core::CAirspaceAnalyzer::getLatestAirspaceAircraftSnapshot | ( | ) | const |
Get the latest snapshot.
Definition at line 84 of file airspaceanalyzer.cpp.
|
inline |
Enable/disable watchdog.
Definition at line 78 of file airspaceanalyzer.h.