swift
testservice.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_MISC_TEST_TESTSERVICE_H
7 #define SWIFT_MISC_TEST_TESTSERVICE_H
8 
9 // clash with struct interface in objbase.h used to happen
10 #pragma push_macro("interface")
11 #undef interface
12 
13 #include <QDBusConnection>
14 #include <QDBusObjectPath>
15 #include <QList>
16 #include <QObject>
17 #include <QString>
18 #include <QTextStream>
19 #include <QVariantList>
20 
24 #include "misc/aviation/altitude.h"
30 #include "misc/network/client.h"
32 #include "misc/network/user.h"
33 #include "misc/pq/length.h"
34 #include "misc/pq/speed.h"
35 #include "misc/propertyindexref.h"
41 #include "misc/swiftmiscexport.h"
42 #include "misc/variant.h"
43 #include "misc/variantlist.h"
44 
45 // clazy:excludeall=const-signal-or-slot
46 
47 class QDBusObjectPath;
48 class QVariant;
49 
50 namespace swift::misc::aviation
51 {
52  class CCallsign;
53  class CComSystem;
54  class CTrack;
55 } // namespace swift::misc::aviation
56 
58 #define SWIFT_MISC_TESTSERVICE_INTERFACENAME "misc.test"
59 
60 namespace swift::misc::test
61 {
64  class SWIFT_MISC_EXPORT CTestService : public QObject
65  {
66  Q_OBJECT
67  Q_CLASSINFO("D-Bus Interface", SWIFT_MISC_TESTSERVICE_INTERFACENAME)
68 
69  // For some reasons the interface name in the XML is not set correctly
70  // to the above name
71 
72  public:
74  explicit CTestService(QObject *parent = nullptr);
75 
77  explicit CTestService(bool verbose, QObject *parent = nullptr);
78 
80  static bool canRegisterTestService(QDBusConnection &connection);
81 
83  static CTestService *registerTestService(QDBusConnection &connection, bool verbose, QObject *parent = nullptr);
84 
86  static bool unregisterTestService(QDBusConnection &connection);
87 
89  static qint64 getPid() { return QCoreApplication::applicationPid(); }
90 
92  static const QString &InterfaceName();
93 
95  static const QString &ObjectPath();
96 
97  signals:
99  void sendStringMessage(const QString &message);
100 
101  public slots:
103  void receiveStringMessage(const QString &message) const;
104 
106  void receiveVariant(const swift::misc::CVariant &variant) const;
107 
109  void receiveSpeed(const swift::misc::physical_quantities::CSpeed &speed) const;
110 
112  void receiveComUnit(const swift::misc::aviation::CComSystem &comUnit) const;
113 
115  void receiveAltitude(const swift::misc::aviation::CAltitude &altitude) const;
116 
118  void receiveList(const QList<double> &list) const;
119 
121  void receiveGeoPosition(const swift::misc::geo::CCoordinateGeodetic &geo) const;
122 
124  void receiveTransponder(const swift::misc::aviation::CTransponder &transponder) const;
125 
127  void receiveTrack(const swift::misc::aviation::CTrack &track) const;
128 
130  void receiveLength(const swift::misc::physical_quantities::CLength &length) const;
131 
133  void receiveVariantList(const swift::misc::CVariantList &variantList) const;
134 
136  void receiveAtcStation(const swift::misc::aviation::CAtcStation &station) const;
137 
139  void receiveCallsign(const swift::misc::aviation::CCallsign &callsign) const;
140 
142  void receiveAtcStationList(const swift::misc::aviation::CAtcStationList &atcStationList) const;
143 
145  void receiveValueMap(const swift::misc::CPropertyIndexVariantMap &valueMap) const;
146 
149 
151  swift::misc::aviation::CAltitude pingAltitude(const swift::misc::aviation::CAltitude &altitude) const;
152 
154  swift::misc::network::CUser pingUser(const swift::misc::network::CUser &user) const;
155 
158  pingSituation(const swift::misc::aviation::CAircraftSituation &situation) const;
159 
161  swift::misc::aviation::CAtcStation pingAtcStation(const swift::misc::aviation::CAtcStation &station) const;
162 
165  pingTransponder(const swift::misc::aviation::CTransponder &transponder) const;
166 
169  pingAircraftLights(const swift::misc::aviation::CAircraftLights &aircraftLights) const;
170 
173  pingAircraftParts(const swift::misc::aviation::CAircraftParts &aircraftParts) const;
174 
177  pingAircraftEngine(const swift::misc::aviation::CAircraftEngine &aircraftEngine) const;
178 
181  pingAircraftModel(const swift::misc::simulation::CAircraftModel &aircraftModel) const;
182 
185  pingAircraftModelList(const swift::misc::simulation::CAircraftModelList &aircraftModels) const;
186 
189  pingSimulatedAircraft(const swift::misc::simulation::CSimulatedAircraft &aircraft) const;
190 
193  pingAtcStationList(const swift::misc::aviation::CAtcStationList &atcStationList) const;
194 
197  pingAircraftList(const swift::misc::simulation::CSimulatedAircraftList &aircraftList) const;
198 
201  pingAirportList(const swift::misc::aviation::CAirportList &airportList) const;
202 
204  swift::misc::CPropertyIndex pingPropertyIndex(const swift::misc::CPropertyIndex &properties) const;
205 
208  pingIndexVariantMap(const swift::misc::CPropertyIndexVariantMap &indexVariantMap) const;
209 
211  swift::misc::network::CClient pingClient(const swift::misc::network::CClient &client) const;
212 
214  swift::misc::network::CClientList pingClientList(const swift::misc::network::CClientList &clientList) const;
215 
218  pingPluginInfo(const swift::misc::simulation::CSimulatorPluginInfo &info) const;
219 
222  pingAircraftIcaoData(const swift::misc::aviation::CAircraftIcaoCode &icao) const;
223 
225  swift::misc::aviation::CFlightPlan pingFlightPlan(const swift::misc::aviation::CFlightPlan &flightPlan) const;
226 
228  swift::misc::CVariant pingCVariant(const swift::misc::CVariant &variant) const;
229 
231  swift::misc::aviation::CAtcStationList getAtcStationList(int n) const;
232 
234  swift::misc::simulation::fscommon::CAircraftCfgEntriesList getAircraftCfgEntriesList(int n) const;
235 
237  QList<QDBusObjectPath> getObjectPaths(int n) const;
238 
239  private:
240  static QTextStream &out();
241  static QTextStream &err();
242  bool m_verbose = true;
243  };
244 } // namespace swift::misc::test
245 
246 #pragma pop_macro("interface")
247 
248 #endif // SWIFT_MISC_TEST_TESTSERVICE_H
Specialized value object compliant map for variants, based on indexes.
Wrapper around QVariant which provides transparent access to CValueObject methods of the contained ob...
Definition: variant.h:66
Value object encapsulating a list of variants.
Definition: variantlist.h:29
Value object encapsulating information about aircraft's engines.
Value object for ICAO classification.
Value object encapsulating information about aircraft's lights.
Value object encapsulating information of aircraft's parts.
Definition: aircraftparts.h:26
Value object encapsulating information of an aircraft's situation.
Value object for a list of airports.
Definition: airportlist.h:29
Altitude as used in aviation, can be AGL or MSL altitude.
Definition: altitude.h:52
Value object encapsulating information about an ATC station.
Definition: atcstation.h:38
Value object for a list of ATC stations.
Value object encapsulating information of a callsign.
Definition: callsign.h:30
COM system (aka "radio")
Definition: comsystem.h:37
Value object for a flight plan.
Definition: flightplan.h:148
Track as used in aviation, can be true or magnetic Track.
Definition: track.h:44
Another client software.
Definition: client.h:27
Value object encapsulating a list of voice rooms.
Definition: clientlist.h:27
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
Value object encapsulating a list of aircraft models.
Comprehensive information of an aircraft.
Value object encapsulating a list of aircraft.
Testservice for PQ / CValueObject DBus tests. This part is the callee.
Definition: testservice.h:65
void sendStringMessage(const QString &message)
Send string message.
static qint64 getPid()
Process id.
Definition: testservice.h:89
Generate data for testing purposes.
Definition: testdata.h:45
#define SWIFT_MISC_EXPORT
Export a class or function from the library.
#define SWIFT_MISC_TESTSERVICE_INTERFACENAME
DBus interface for test service.
Definition: testservice.h:58