swift
contextownaircraft.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_CORE_CONTEXT_CONTEXTOWNAIRCRAFT_H
7 #define SWIFT_CORE_CONTEXT_CONTEXTOWNAIRCRAFT_H
8 
9 #include <QObject>
10 #include <QString>
11 
12 #include "core/context/context.h"
13 #include "core/corefacade.h"
14 #include "core/corefacadeconfig.h"
15 #include "core/swiftcoreexport.h"
18 #include "misc/aviation/selcal.h"
20 #include "misc/identifier.h"
21 #include "misc/network/user.h"
22 #include "misc/pq/frequency.h"
24 
25 // clazy:excludeall=const-signal-or-slot
26 
29 #define SWIFT_CORE_CONTEXTOWNAIRCRAFT_INTERFACENAME "org.swift_project.swift_core.contextownaircraft"
30 
33 #define SWIFT_CORE_CONTEXTOWNAIRCRAFT_OBJECTPATH "/ownaircraft"
34 
35 class QDBusConnection;
36 namespace swift::misc
37 {
38  class CDBusServer;
39  namespace aviation
40  {
41  class CAircraftIcaoCode;
42  class CAltitude;
43  class CCallsign;
44  class CTransponder;
45  } // namespace aviation
46 } // namespace swift::misc
47 namespace swift::core::context
48 {
52  {
53  Q_OBJECT
54  Q_CLASSINFO("D-Bus Interface", SWIFT_CORE_CONTEXTOWNAIRCRAFT_INTERFACENAME)
55 
56  public:
58  static const QString &InterfaceName()
59  {
61  return s;
62  }
63 
65  static const QString &ObjectPath()
66  {
68  return s;
69  }
70 
72  virtual QString getPathAndContextId() const override { return this->buildPathAndContextId(ObjectPath()); }
73 
76  swift::misc::CDBusServer *server, QDBusConnection &connection);
77 
79  virtual ~IContextOwnAircraft() override {}
80 
81  signals:
84  const swift::misc::CIdentifier &originator);
85 
88 
91 
94  const swift::misc::aviation::CAirlineIcaoCode &airlineIcaoCode);
95 
98 
101 
102  public slots:
105 
109 
112 
115 
119  const swift::misc::aviation::CAltitude &altitude,
120  const swift::misc::aviation::CAltitude &pressureAltitude) = 0;
121 
125  const swift::misc::aviation::CTransponder &transponder,
126  const swift::misc::CIdentifier &originator) = 0;
127 
130  const swift::misc::CIdentifier &originator) = 0;
131 
133  virtual void toggleTransponderMode() = 0;
134 
137 
141  const swift::misc::CIdentifier &originator) = 0;
142 
144  virtual bool updateOwnAircraftPilot(const swift::misc::network::CUser &pilot) = 0;
145 
147  virtual bool updateOwnIcaoCodes(const swift::misc::aviation::CAircraftIcaoCode &aircraftIcaoCode,
148  const swift::misc::aviation::CAirlineIcaoCode &airlineIcaoCode) = 0;
149 
151  virtual bool updateOwnCallsign(const swift::misc::aviation::CCallsign &callsign) = 0;
152 
154  virtual bool updateSelcal(const swift::misc::aviation::CSelcal &selcal,
155  const swift::misc::CIdentifier &originator) = 0;
156 
159  static const swift::misc::aviation::CAircraftSituation &getDefaultSituation();
160 
163  static swift::misc::simulation::CAircraftModel getDefaultOwnAircraftModel();
164 
165  protected:
168  };
169 } // namespace swift::core::context
170 
171 #endif // SWIFT_CORE_CONTEXT_CONTEXTOWNAIRCRAFT_H
ContextMode
How to handle a given context.
The class providing facades (the contexts) for all DBus relevant operations.
Definition: corefacade.h:57
Base for all context classes.
Definition: context.h:34
void changedAircraftCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft, const swift::misc::CIdentifier &originator)
Aircraft cockpit update.
virtual swift::misc::aviation::CComSystem getOwnComSystem(swift::misc::aviation::CComSystem::ComUnit unit) const =0
Get own COM system.
void changedPilot(const swift::misc::network::CUser &pilot)
Own pilot (aka the swift user) changed.
virtual bool setTransponderMode(swift::misc::aviation::CTransponder::TransponderMode mode)=0
Set XPDR mode.
virtual bool updateOwnAircraftPilot(const swift::misc::network::CUser &pilot)=0
Set current pilot.
void changedCallsign(const swift::misc::aviation::CCallsign &callsign)
Own callsign was changed.
void changedAircraftIcaoCodes(const swift::misc::aviation::CAircraftIcaoCode &aircraftIcaoCode, const swift::misc::aviation::CAirlineIcaoCode &airlineIcaoCode)
Own ICAO was changed.
virtual bool updateOwnPosition(const swift::misc::geo::CCoordinateGeodetic &position, const swift::misc::aviation::CAltitude &altitude, const swift::misc::aviation::CAltitude &pressureAltitude)=0
Update position.
virtual bool updateActiveComFrequency(const swift::misc::physical_quantities::CFrequency &frequency, swift::misc::aviation::CComSystem::ComUnit comUnit, const swift::misc::CIdentifier &originator)=0
Tune in a COM frequency.
virtual bool updateOwnCallsign(const swift::misc::aviation::CCallsign &callsign)=0
Set callsign.
static const QString & ObjectPath()
DBus object path.
static const QString & InterfaceName()
DBus interface name.
void movedAircraft(const swift::misc::physical_quantities::CLength &distance)
Aircraft has been moved from one location to another (changed scenery)
IContextOwnAircraft(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime)
Constructor.
virtual bool updateTransponderMode(const swift::misc::aviation::CTransponder::TransponderMode &transponderMode, const swift::misc::CIdentifier &originator)=0
Update own transponder mode.
virtual bool updateSelcal(const swift::misc::aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator)=0
Own SELCAL code.
virtual QString getPathAndContextId() const
Id and path name for round trip protection.
virtual bool updateOwnIcaoCodes(const swift::misc::aviation::CAircraftIcaoCode &aircraftIcaoCode, const swift::misc::aviation::CAirlineIcaoCode &airlineIcaoCode)=0
Set ICAO data.
virtual swift::misc::simulation::CSimulatedAircraft getOwnAircraft() const =0
Get own aircraft.
void changedSelcal(const swift::misc::aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator)
Changed SELCAL code.
virtual bool updateCockpit(const swift::misc::aviation::CComSystem &com1, const swift::misc::aviation::CComSystem &com2, const swift::misc::aviation::CTransponder &transponder, const swift::misc::CIdentifier &originator)=0
Update own cockpit.
virtual swift::misc::aviation::CAircraftSituation getOwnAircraftSituation() const =0
Get own aircraft.
virtual void toggleTransponderMode()=0
Toggle XPDR mode.
virtual swift::misc::aviation::CTransponder getOwnTransponder() const =0
Get own transponder.
Custom DBusServer.
Definition: dbusserver.h:34
Value object encapsulating information identifying a component of a modular distributed swift process...
Definition: identifier.h:29
Value object for ICAO classification.
Value object encapsulating information of an aircraft's situation.
Value object for ICAO classification.
Altitude as used in aviation, can be AGL or MSL altitude.
Definition: altitude.h:52
Value object encapsulating information of a callsign.
Definition: callsign.h:30
COM system (aka "radio")
Definition: comsystem.h:37
Value object for SELCAL.
Definition: selcal.h:31
Value object encapsulating information of a user.
Definition: user.h:28
Physical unit length (length)
Definition: length.h:18
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Comprehensive information of an aircraft.
#define SWIFT_CORE_CONTEXTOWNAIRCRAFT_OBJECTPATH
DBus object path for context.
#define SWIFT_CORE_CONTEXTOWNAIRCRAFT_INTERFACENAME
DBus interface for context.
Free functions in swift::misc.
#define SWIFT_CORE_EXPORT
Export a class or function from the library.