swift
remoteaircraftprovider.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_SIMULATION_REMOTEAIRCRAFTPROVIDER_H
7 #define SWIFT_MISC_SIMULATION_REMOTEAIRCRAFTPROVIDER_H
8 
9 #include <functional>
10 
11 #include <QHash>
12 #include <QJsonObject>
13 #include <QList>
14 #include <QMetaObject>
15 #include <QObject>
16 #include <QReadWriteLock>
17 #include <QtGlobal>
18 
24 #include "misc/identifiable.h"
25 #include "misc/provider.h"
30 #include "misc/swiftmiscexport.h"
31 
32 namespace swift::misc
33 {
34  namespace geo
35  {
36  class CElevationPlane;
37  }
38  namespace simulation
39  {
45  {
46  public:
47  static constexpr int MaxSituationsPerCallsign = 50;
48  static constexpr int MaxPartsPerCallsign = 50;
49  static constexpr int MaxPartsAgePerCallsignSecs = 60;
50 
52  ~IRemoteAircraftProvider() override = default;
53 
56 
59 
63 
66  virtual int getAircraftInRangeCount() const = 0;
67 
71 
74  virtual bool isAircraftInRange(const aviation::CCallsign &callsign) const = 0;
75 
78  virtual bool isVtolAircraft(const aviation::CCallsign &callsign) const = 0;
79 
83 
87 
91 
95  remoteAircraftSituations(const aviation::CCallsign &callsign) const = 0;
96 
101 
108  int index) const = 0;
109 
113 
117 
121  virtual int remoteAircraftSituationsCount(const aviation::CCallsign &callsign) const = 0;
122 
127 
130  virtual int remoteAircraftPartsCount(const aviation::CCallsign &callsign) const = 0;
131 
134  virtual bool isRemoteAircraftSupportingParts(const aviation::CCallsign &callsign) const = 0;
135 
138  aviation::CAircraftParts getLatestAircraftParts(const aviation::CCallsign &callsign) const;
139 
142  virtual int getRemoteAircraftSupportingPartsCount() const = 0;
143 
147 
152 
155  virtual int remoteAircraftSituationChangesCount(const aviation::CCallsign &callsign) const = 0;
156 
160  virtual bool updateAircraftEnabled(const aviation::CCallsign &callsign, bool enabledForRendering) = 0;
161 
165  bool enabledForRendering) = 0;
166 
170  bool enabledForRendering) = 0;
171 
174  virtual bool updateAircraftRendered(const aviation::CCallsign &callsign, bool rendered) = 0;
175 
178  virtual int updateMultipleAircraftRendered(const aviation::CCallsignSet &callsigns, bool rendered) = 0;
179 
182  virtual void updateMarkAllAsNotRendered() = 0;
183 
186  virtual bool updateAircraftModel(const aviation::CCallsign &callsign, const CAircraftModel &model,
187  const CIdentifier &originator) = 0;
188 
191  virtual bool updateAircraftNetworkModel(const aviation::CCallsign &callsign, const CAircraftModel &model,
192  const CIdentifier &originator) = 0;
193 
196  virtual bool updateFastPositionEnabled(const aviation::CCallsign &callsign,
197  bool enableFastPositonUpdates) = 0;
198 
202  const geo::CElevationPlane &elevation,
204  bool *updateAircraftGroundElevation) = 0;
205 
208  virtual bool updateCG(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg) = 0;
209 
212  virtual aviation::CCallsignSet updateCGForModel(const QString &modelString,
213  const physical_quantities::CLength &cg) = 0;
214 
217  virtual bool updateCGAndModelString(const aviation::CCallsign &callsign,
218  const physical_quantities::CLength &cg, const QString &modelString) = 0;
219 
224  virtual physical_quantities::CLength getCGFromDB(const QString &modelString) const = 0;
225  virtual void rememberCGFromDB(const physical_quantities::CLength &cgFromDB,
226  const aviation::CCallsign &callsign) = 0;
227  virtual void rememberCGFromDB(const physical_quantities::CLength &cgFromDB, const QString &modelString) = 0;
229 
233 
236  virtual ReverseLookupLogging isReverseLookupMessagesEnabled() const = 0;
237 
240  virtual void enableReverseLookupMessages(ReverseLookupLogging enable) = 0;
241 
245 
248  virtual bool isAircraftPartsHistoryEnabled() const = 0;
249 
252  virtual void enableAircraftPartsHistory(bool enabled) = 0;
253 
256  virtual int aircraftSituationsAdded() const = 0;
257 
260  virtual int aircraftPartsAdded() const = 0;
261 
264  virtual qint64 situationsLastModified(const aviation::CCallsign &callsign) const = 0;
265 
268  virtual qint64 partsLastModified(const aviation::CCallsign &callsign) const = 0;
269 
273  virtual geo::CElevationPlane
275  const physical_quantities::CLength &range, int minValues = 1,
276  int sufficientValues = 2) const = 0;
277 
282  QObject *receiver, std::function<void(const aviation::CAircraftSituation &)> addedSituationSlot,
283  std::function<void(const aviation::CCallsign &, const aviation::CAircraftParts &)> addedPartsSlot,
284  std::function<void(const aviation::CCallsign &)> removedAircraftSlot,
285  std::function<void(const CAirspaceAircraftSnapshot &)> aircraftSnapshot) = 0;
286 
288  static void removeOutdatedParts(aviation::CAircraftPartsList &partsList);
289 
291  static const aviation::CCallsign &testAltitudeOffsetCallsign();
292 
293  protected:
296  };
297  } // namespace simulation
298 } // namespace swift::misc
299 
300 Q_DECLARE_INTERFACE(swift::misc::simulation::IRemoteAircraftProvider, "org.swift-project.iremoteaircraftprovider")
301 
302 namespace swift::misc::simulation
303 {
306  public QObject,
308  public CIdentifiable
309  {
310  Q_OBJECT
312 
313  public:
315  static const QStringList &getLogCategories();
316 
319 
320  // remoteaircraftprovider
321  CSimulatedAircraftList getAircraftInRange() const override;
322  aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
323  CSimulatedAircraft getAircraftInRangeForCallsign(const aviation::CCallsign &callsign) const override;
324  CAircraftModel getAircraftInRangeModelForCallsign(const aviation::CCallsign &callsign) const override;
325  int getAircraftInRangeCount() const override;
326  bool isAircraftInRange(const aviation::CCallsign &callsign) const override;
327  bool isVtolAircraft(const aviation::CCallsign &callsign) const override;
328  aviation::CAircraftSituationList remoteAircraftSituations(const aviation::CCallsign &callsign) const override;
329  aviation::CAircraftSituation remoteAircraftSituation(const aviation::CCallsign &callsign,
330  int index) const override;
332  remoteAircraftSituationsTimestampDifferenceMinMaxMean(const aviation::CCallsign &callsign) const override;
333  aviation::CAircraftSituationList latestRemoteAircraftSituations() const override;
334  aviation::CAircraftSituationList latestOnGroundProviderElevations() const override;
335  int remoteAircraftSituationsCount(const aviation::CCallsign &callsign) const override;
336  aviation::CAircraftPartsList remoteAircraftParts(const aviation::CCallsign &callsign) const override;
337  int remoteAircraftPartsCount(const aviation::CCallsign &callsign) const override;
338  bool isRemoteAircraftSupportingParts(const aviation::CCallsign &callsign) const override;
339  int getRemoteAircraftSupportingPartsCount() const override;
340  aviation::CCallsignSet remoteAircraftSupportingParts() const override;
342  remoteAircraftSituationChanges(const aviation::CCallsign &callsign) const override;
343  int remoteAircraftSituationChangesCount(const aviation::CCallsign &callsign) const override;
344  bool updateAircraftEnabled(const aviation::CCallsign &callsign, bool enabledForRendering) override;
345  bool setAircraftEnabledFlag(const swift::misc::aviation::CCallsign &callsign,
346  bool enabledForRendering) override;
347  int updateMultipleAircraftEnabled(const aviation::CCallsignSet &callsigns, bool enabledForRendering) override;
348  bool updateAircraftModel(const aviation::CCallsign &callsign, const CAircraftModel &model,
349  const CIdentifier &originator) override;
350  bool updateAircraftNetworkModel(const aviation::CCallsign &callsign, const CAircraftModel &model,
351  const CIdentifier &originator) override;
352  bool updateFastPositionEnabled(const aviation::CCallsign &callsign, bool enableFastPositonUpdates) override;
353  bool updateAircraftRendered(const aviation::CCallsign &callsign, bool rendered) override;
354  int updateMultipleAircraftRendered(const aviation::CCallsignSet &callsigns, bool rendered) override;
355  int updateAircraftGroundElevation(const aviation::CCallsign &callsign, const geo::CElevationPlane &elevation,
357  bool *setForOnGroundPosition) override;
358  bool updateCG(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg) override;
359  bool updateCGAndModelString(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg,
360  const QString &modelString) override;
361  aviation::CCallsignSet updateCGForModel(const QString &modelString,
362  const physical_quantities::CLength &cg) override;
363  physical_quantities::CLength getCGFromDB(const aviation::CCallsign &callsign) const override;
364  physical_quantities::CLength getCGFromDB(const QString &modelString) const override;
365  void rememberCGFromDB(const physical_quantities::CLength &cgFromDB,
366  const aviation::CCallsign &callsign) override;
367  void rememberCGFromDB(const physical_quantities::CLength &cgFromDB, const QString &modelString) override;
368  void updateMarkAllAsNotRendered() override;
369  CStatusMessageList getAircraftPartsHistory(const aviation::CCallsign &callsign) const override;
370  bool isAircraftPartsHistoryEnabled() const override;
371  void enableAircraftPartsHistory(bool enabled) override;
372  int aircraftSituationsAdded() const override;
373  int aircraftPartsAdded() const override;
374  qint64 situationsLastModified(const aviation::CCallsign &callsign) const override;
375  qint64 partsLastModified(const aviation::CCallsign &callsign) const override;
376  geo::CElevationPlane averageElevationOfNonMovingAircraft(const aviation::CAircraftSituation &reference,
377  const physical_quantities::CLength &range,
378  int minValues = 1,
379  int sufficientValues = 2) const override;
380  QList<QMetaObject::Connection> connectRemoteAircraftProviderSignals(
381  QObject *receiver, std::function<void(const aviation::CAircraftSituation &)> addedSituationSlot,
382  std::function<void(const aviation::CCallsign &, const aviation::CAircraftParts &)> addedPartsSlot,
383  std::function<void(const aviation::CCallsign &)> removedAircraftSlot,
384  std::function<void(const CAirspaceAircraftSnapshot &)> aircraftSnapshotSlot) override;
385 
386  void enableReverseLookupMessages(ReverseLookupLogging enable) override;
387  ReverseLookupLogging isReverseLookupMessagesEnabled() const override;
389  getReverseLookupMessages(const swift::misc::aviation::CCallsign &callsign) const override;
390 
395  void addReverseLookupMessages(const aviation::CCallsign &callsign, const CStatusMessageList &messages);
396  void addReverseLookupMessage(const aviation::CCallsign &callsign, const CStatusMessage &message);
397  void addReverseLookupMessage(const aviation::CCallsign &callsign, const QString &message,
398  CStatusMessage::StatusSeverity severity = CStatusMessage::SeverityInfo);
400 
402  QObject *asQObject() override { return this; }
403 
405  void clear();
406 
407  // ------------------- testing ---------------
408 
410  bool hasTestAltitudeOffset(const aviation::CCallsign &callsign) const;
411 
413  bool hasTestAltitudeOffsetGlobalValue() const;
414 
416  bool testAddAltitudeOffset(const aviation::CCallsign &callsign, const physical_quantities::CLength &offset);
417 
418  signals:
421 
425 
428 
431 
434 
437 
438  protected:
441  bool removeAircraft(const aviation::CCallsign &callsign);
442 
445  void removeAllAircraft();
446 
449  void removeReverseLookupMessages(const aviation::CCallsign &callsign);
450 
453  bool addNewAircraftInRange(const CSimulatedAircraft &aircraft);
454 
458  const QString &airlineIcao, const QString &livery,
459  const QString &modelString, CAircraftModel::ModelType modelType,
460  CStatusMessageList *log = nullptr);
461 
464  int updateAircraftInRange(const aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm,
465  bool skipEqualValues = true);
466 
470  bool updateAircraftInRangeDistanceBearing(const aviation::CCallsign &callsign,
471  const aviation::CAircraftSituation &situation,
472  const physical_quantities::CLength &distance,
473  const physical_quantities::CAngle &bearing);
474 
478  virtual aviation::CAircraftSituation storeAircraftSituation(const aviation::CAircraftSituation &situation,
479  bool allowTestAltitudeOffset = true);
480 
485  void storeAircraftParts(const aviation::CCallsign &callsign, const aviation::CAircraftParts &parts,
486  bool removeOutdated);
487  void storeAircraftParts(const aviation::CCallsign &callsign, const QJsonObject &jsonObject,
488  qint64 currentOffsetMs);
490 
493  bool guessOnGroundAndUpdateModelCG(aviation::CAircraftSituation &situation,
495  const CAircraftModel &aircraftModel);
496 
499  addTestAltitudeOffsetToSituation(const aviation::CAircraftSituation &situation) const;
500 
503  ReverseLookupLogging whatToReverseLog() const;
504 
507  static int setGroundElevationCheckedAndGuessGround(aviation::CAircraftSituationList &situations,
508  const geo::CElevationPlane &elevationPlane,
510  const simulation::CAircraftModel &model,
512  bool *setForOnGroundPosition);
513 
514  private:
518  void storeChange(const aviation::CAircraftSituationChange &change);
519 
521  m_situationsByCallsign;
523  m_latestSituationByCallsign;
526  m_latestOnGroundProviderElevation;
528  m_partsByCallsign;
530  m_changesByCallsign;
532  aviation::CCallsignSet m_aircraftWithParts;
533  int m_situationsAdded = 0;
534  int m_partsAdded = 0;
535 
536  ReverseLookupLogging m_enableReverseLookupMsgs =
537  RevLogSimplifiedInfo;
539  aviation::CStatusMessageListPerCallsign m_reverseLookupMessages;
540  aviation::CStatusMessageListPerCallsign m_aircraftPartsMessages;
541  aviation::CTimestampPerCallsign m_situationsLastModified;
542  aviation::CTimestampPerCallsign m_partsLastModified;
543  aviation::CLengthPerCallsign m_testOffset;
544  aviation::CLengthPerCallsign m_dbCGPerCallsign;
545  QHash<QString, physical_quantities::CLength> m_dbCGPerModelString;
546 
547  bool m_enableAircraftPartsHistory = true;
548 
549  // locks
550  mutable QReadWriteLock m_lockSituations;
551  mutable QReadWriteLock m_lockParts;
552  mutable QReadWriteLock m_lockChanges;
553  mutable QReadWriteLock m_lockAircraft;
554  mutable QReadWriteLock m_lockMessages;
555  mutable QReadWriteLock m_lockPartsHistory;
556  };
557 
559  class SWIFT_MISC_EXPORT CRemoteAircraftAware : public IProviderAware<IRemoteAircraftProvider>
560  {
561  public:
563  ~CRemoteAircraftAware() override = default;
564 
566  CSimulatedAircraftList getAircraftInRange() const;
567 
569  bool isAircraftInRange(const aviation::CCallsign &callsign) const;
570 
572  bool isVtolAircraft(const aviation::CCallsign &callsign) const;
573 
575  int getAircraftInRangeCount() const;
576 
578  aviation::CCallsignSet getAircraftInRangeCallsigns() const;
579 
581  CSimulatedAircraft getAircraftInRangeForCallsign(const aviation::CCallsign &callsign) const;
582 
584  CAircraftModel getAircraftInRangeModelForCallsign(const aviation::CCallsign &callsign) const;
585 
587  CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const;
588 
590  aviation::CAircraftSituationList remoteAircraftSituations(const aviation::CCallsign &callsign) const;
591 
593  aviation::CAircraftSituation remoteAircraftSituation(const aviation::CCallsign &callsign, int index) const;
594 
596  aviation::CAircraftSituationList latestRemoteAircraftSituations() const;
597 
599  aviation::CAircraftSituationList latestOnGroundProviderElevations() const;
600 
602  int remoteAircraftSituationsCount(const aviation::CCallsign &callsign) const;
603 
605  aviation::CAircraftPartsList remoteAircraftParts(const aviation::CCallsign &callsign) const;
606 
608  int remoteAircraftPartsCount(const aviation::CCallsign &callsign) const;
609 
612  remoteAircraftSituationChanges(const aviation::CCallsign &callsign) const;
613 
615  aviation::CCallsignSet remoteAircraftSupportingParts() const;
616 
618  bool isRemoteAircraftSupportingParts(const aviation::CCallsign &callsign) const;
619 
621  int getRemoteAircraftSupportingPartsCount() const;
622 
624  bool updateAircraftEnabled(const aviation::CCallsign &callsign, bool enabledForRendering);
625 
627  bool setAircraftEnabledFlag(const aviation::CCallsign &callsign, bool enabledForRendering);
628 
630  bool updateMultipleAircraftEnabled(const aviation::CCallsignSet &callsigns, bool enabledForRendering);
631 
633  bool updateAircraftModel(const aviation::CCallsign &callsign, const CAircraftModel &model,
634  const CIdentifier &originator);
635 
637  bool updateAircraftNetworkModel(const aviation::CCallsign &callsign, const CAircraftModel &model,
638  const CIdentifier &originator);
639 
641  bool updateAircraftRendered(const aviation::CCallsign &callsign, bool rendered);
642 
644  bool updateMultipleAircraftRendered(const aviation::CCallsignSet &callsigns, bool rendered);
645 
647  int updateAircraftGroundElevation(const aviation::CCallsign &callsign, const geo::CElevationPlane &elevation,
649  bool *updateAircraftGroundElevation);
650 
652  bool updateCG(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg);
653 
655  aviation::CCallsignSet updateCGForModel(const QString &modelString, const physical_quantities::CLength &cg);
656 
658  bool updateCGAndModelString(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg,
659  const QString &modelString);
660 
662  void updateMarkAllAsNotRendered();
663 
665  int aircraftSituationsAdded() const;
666 
668  int aircraftPartsAdded() const;
669 
671  qint64 situationsLastModified(const aviation::CCallsign &callsign) const;
672 
674  qint64 partsLastModified(const aviation::CCallsign &callsign) const;
675 
677  geo::CElevationPlane averageElevationOfNonMovingAircraft(const aviation::CAircraftSituation &reference,
678  const physical_quantities::CLength &range,
679  int minValues = 1) const;
680 
683  {
684  this->setProvider(remoteAircraftProvider);
685  }
686 
688  IRemoteAircraftProvider *getRemoteAircraftProvider() const { return this->getProvider(); }
689 
690  protected:
692  CRemoteAircraftAware() {} // NOLINT(modernize-use-equals-default)
693 
695  CRemoteAircraftAware(IRemoteAircraftProvider *remoteAircraftProvider) : IProviderAware(remoteAircraftProvider)
696  {
697  Q_ASSERT(remoteAircraftProvider);
698  }
699  };
700 } // namespace swift::misc::simulation
701 
702 #endif // SWIFT_MISC_SIMULATION_REMOTEAIRCRAFTPROVIDER_H
Base class with a member CIdentifier to be inherited by a class which has an identity in the environm...
Definition: identifiable.h:24
Value object encapsulating information identifying a component of a modular distributed swift process...
Definition: identifier.h:29
Specialized value object compliant map for variants, based on indexes.
Streamable status message, e.g.
Status messages, e.g. from Core -> GUI.
Base class of provider aware classes.
Definition: provider.h:41
Base class for providers.
Definition: provider.h:19
Value object encapsulating information of aircraft's parts.
Definition: aircraftparts.h:26
Value object encapsulating a list of aircraft parts.
Value object about changes in situations.
Value object encapsulating a list of aircraft parts.
Value object encapsulating information of an aircraft's situation.
GndElevationInfo
Where did we get elevation from?
Value object encapsulating information of a callsign.
Definition: callsign.h:30
Value object for a set of callsigns.
Definition: callsignset.h:26
Plane of same elevation, can be a single point or larger area (e.g. airport)
Physical unit angle (radians, degrees)
Definition: angle.h:23
Physical unit length (length)
Definition: length.h:18
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Class which can be directly used to access an.
CRemoteAircraftAware(IRemoteAircraftProvider *remoteAircraftProvider)
Constructor.
IRemoteAircraftProvider * getRemoteAircraftProvider() const
Get the aircraft provider.
void setRemoteAircraftProvider(IRemoteAircraftProvider *remoteAircraftProvider)
Set remote aircraft provider.
Implementaion of the interface, which can also be used for testing.
void changedAircraftInRange()
Aircraft were changed.
CSimulatedAircraft addOrUpdateAircraftInRange(const aviation::CCallsign &callsign, const QString &aircraftIcao, const QString &airlineIcao, const QString &livery, const QString &modelString, CAircraftModel::ModelType modelType, CStatusMessageList *log=nullptr)
Init a new aircraft and add it or update model of existing aircraft.
void addedAircraftParts(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CAircraftParts &parts)
Parts added.
void addedAircraft(const swift::misc::simulation::CSimulatedAircraft &remoteAircraft)
A new aircraft appeared.
void airspaceAircraftSnapshot(const swift::misc::simulation::CAirspaceAircraftSnapshot &snapshot)
New aircraft snapshot.
void addedAircraftSituation(const swift::misc::aviation::CAircraftSituation &situation)
Situation added.
void removedAircraft(const swift::misc::aviation::CCallsign &callsign)
An aircraft disappeared.
Comprehensive information of an aircraft.
Value object encapsulating a list of aircraft.
Direct thread safe in memory access to remote aircraft.
virtual bool isAircraftPartsHistoryEnabled() const =0
Is storing aircraft parts history enabled?
IRemoteAircraftProvider(const IRemoteAircraftProvider &)=delete
Copy constructor.
virtual int aircraftPartsAdded() const =0
Number of parts added.
virtual bool setAircraftEnabledFlag(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering)=0
Just set enable/disable aircraft flag, no further logic.
virtual bool isRemoteAircraftSupportingParts(const aviation::CCallsign &callsign) const =0
Is remote aircraft supporting parts?
virtual aviation::CAircraftSituation remoteAircraftSituation(const aviation::CCallsign &callsign, int index) const =0
Rendered aircraft situations (per callsign and index)
virtual bool updateCGAndModelString(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg, const QString &modelString)=0
Update the CG and model string.
virtual bool updateAircraftEnabled(const aviation::CCallsign &callsign, bool enabledForRendering)=0
Enable/disable aircraft and follow up logic like sending signals.
virtual void updateMarkAllAsNotRendered()=0
Mark all as not rendered.
virtual geo::CElevationPlane averageElevationOfNonMovingAircraft(const aviation::CAircraftSituation &reference, const physical_quantities::CLength &range, int minValues=1, int sufficientValues=2) const =0
Average elevation of aircraft in given range, which are NOT moving.
virtual bool updateAircraftNetworkModel(const aviation::CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)=0
Change network model.
virtual bool updateFastPositionEnabled(const aviation::CCallsign &callsign, bool enableFastPositonUpdates)=0
Change fast position updates.
IRemoteAircraftProvider & operator=(const IRemoteAircraftProvider &)=delete
Copy assignment operator.
virtual aviation::CAircraftSituationList latestRemoteAircraftSituations() const =0
Latest aircraft situation for all callsigns.
virtual aviation::CCallsignSet getAircraftInRangeCallsigns() const =0
Unique callsigns for aircraft in range.
virtual CAircraftModel getAircraftInRangeModelForCallsign(const aviation::CCallsign &callsign) const =0
Aircraft model for callsign.
virtual int updateMultipleAircraftRendered(const aviation::CCallsignSet &callsigns, bool rendered)=0
Set aircraft rendered.
virtual physical_quantities::CLength getCGFromDB(const QString &modelString) const =0
CG values from DB.
virtual int remoteAircraftSituationsCount(const aviation::CCallsign &callsign) const =0
Number of remote aircraft situations for callsign.
virtual bool updateAircraftRendered(const aviation::CCallsign &callsign, bool rendered)=0
Set aircraft rendered.
virtual void rememberCGFromDB(const physical_quantities::CLength &cgFromDB, const QString &modelString)=0
CG values from DB.
virtual CStatusMessageList getReverseLookupMessages(const aviation::CCallsign &callsign) const =0
Get reverse lookup meesages.
virtual qint64 partsLastModified(const aviation::CCallsign &callsign) const =0
When last modified.
virtual void enableReverseLookupMessages(ReverseLookupLogging enable)=0
Enable reverse lookup logging.
virtual int getAircraftInRangeCount() const =0
Count remote aircraft.
virtual QList< QMetaObject::Connection > connectRemoteAircraftProviderSignals(QObject *receiver, std::function< void(const aviation::CAircraftSituation &)> addedSituationSlot, std::function< void(const aviation::CCallsign &, const aviation::CAircraftParts &)> addedPartsSlot, std::function< void(const aviation::CCallsign &)> removedAircraftSlot, std::function< void(const CAirspaceAircraftSnapshot &)> aircraftSnapshot)=0
Connect signals to slot receiver. As the interface is no QObject, slots can not be connected directly...
virtual aviation::CCallsignSet remoteAircraftSupportingParts() const =0
Remote aircraft supporting parts.
virtual aviation::CAircraftSituationList remoteAircraftSituations(const aviation::CCallsign &callsign) const =0
Rendered aircraft situations (per callsign, time history)
virtual ReverseLookupLogging isReverseLookupMessagesEnabled() const =0
Enabled reverse lookup logging?
virtual int updateMultipleAircraftEnabled(const aviation::CCallsignSet &callsigns, bool enabledForRendering)=0
Enable/disable aircraft.
virtual physical_quantities::CLength getCGFromDB(const aviation::CCallsign &callsign) const =0
CG values from DB.
virtual aviation::CAircraftSituationChangeList remoteAircraftSituationChanges(const aviation::CCallsign &callsign) const =0
Aircraft changes.
virtual CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const =0
Current snapshot.
virtual bool updateAircraftModel(const aviation::CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)=0
Change model.
virtual CSimulatedAircraftList getAircraftInRange() const =0
All remote aircraft.
virtual CStatusMessageList getAircraftPartsHistory(const aviation::CCallsign &callsign) const =0
Get aircraft parts history.
virtual int getRemoteAircraftSupportingPartsCount() const =0
Number of aircraft supporting parts.
virtual int remoteAircraftPartsCount(const aviation::CCallsign &callsign) const =0
All parts (per callsign, time history)
virtual int aircraftSituationsAdded() const =0
Number of situations added.
virtual bool isVtolAircraft(const aviation::CCallsign &callsign) const =0
Is VTOL aircraft?
virtual int updateAircraftGroundElevation(const aviation::CCallsign &callsign, const geo::CElevationPlane &elevation, aviation::CAircraftSituation::GndElevationInfo info, bool *updateAircraftGroundElevation)=0
Update the ground elevation.
virtual void enableAircraftPartsHistory(bool enabled)=0
Enable storing of aircraft parts history.
virtual qint64 situationsLastModified(const aviation::CCallsign &callsign) const =0
When last modified.
virtual aviation::CAircraftPartsList remoteAircraftParts(const aviation::CCallsign &callsign) const =0
All parts (per callsign, time history)
virtual CSimulatedAircraft getAircraftInRangeForCallsign(const aviation::CCallsign &callsign) const =0
Aircraft for callsign.
virtual aviation::CCallsignSet updateCGForModel(const QString &modelString, const physical_quantities::CLength &cg)=0
Update the CG for this model string.
virtual int remoteAircraftSituationChangesCount(const aviation::CCallsign &callsign) const =0
Aircraft changes count.
virtual void rememberCGFromDB(const physical_quantities::CLength &cgFromDB, const aviation::CCallsign &callsign)=0
CG values from DB.
virtual aviation::CAircraftSituationList latestOnGroundProviderElevations() const =0
Latest aircraft situation "on ground" having a provider elevation.
virtual bool updateCG(const aviation::CCallsign &callsign, const physical_quantities::CLength &cg)=0
Update the CG.
virtual MillisecondsMinMaxMean remoteAircraftSituationsTimestampDifferenceMinMaxMean(const aviation::CCallsign &callsign) const =0
Average update time.
virtual bool isAircraftInRange(const aviation::CCallsign &callsign) const =0
Is aircraft in range?
Free functions in swift::misc.
StatusSeverity
Status severities.
Definition: statusmessage.h:35
Milliseconds minimum/maximum/mean.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.