6 #include <QDBusConnection>
7 #include <QLatin1String>
17 using namespace swift::misc::network;
18 using namespace swift::misc::aviation;
19 using namespace swift::misc::physical_quantities;
20 using namespace swift::misc::weather;
21 using namespace swift::misc::simulation;
23 namespace swift::core::context
25 CContextNetworkProxy::CContextNetworkProxy(
const QString &serviceName, QDBusConnection &connection,
31 this->relaySignals(serviceName, connection);
34 void CContextNetworkProxy::unitTestRelaySignals()
37 QDBusConnection con = QDBusConnection::sessionBus();
42 void CContextNetworkProxy::relaySignals(
const QString &serviceName, QDBusConnection &connection)
45 "connectionStatusChanged",
this,
59 "atcStationDisconnected",
this,
66 this, SIGNAL(
kicked(QString)));
69 "textMessagesReceived",
this,
76 "changedRemoteAircraftEnabled",
this,
80 "changedFastPositionUpdates",
this,
84 "changedGndFlagCapability",
this,
88 "addedAircraft",
this,
95 "connectedServerChanged",
this,
106 QLatin1String(
"getAtcStationsOnline"), recalculateDistance);
112 QLatin1String(
"getClosestAtcStationsOnline"), number);
118 QLatin1String(
"getAircraftInRange"));
124 QLatin1String(
"getAircraftInRangeCallsigns"));
129 return m_dBusInterface->
callDBusRet<
int>(QLatin1String(
"getAircraftInRangeCount"));
134 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isAircraftInRange"), callsign);
140 QLatin1String(
"getAircraftInRangeForCallsign"), callsign);
146 QLatin1String(
"getOnlineStationsForFrequency"), frequency);
152 QLatin1String(
"getOnlineStationForCallsign"), callsign);
157 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isOnlineStation"), callsign);
194 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"setOtherClient"), client);
199 m_dBusInterface->
callDBus(QLatin1String(
"requestAircraftDataUpdates"));
206 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"updateAircraftEnabled"), callsign,
207 enabledForRendering);
212 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"setAircraftEnabledFlag"), callsign,
213 enabledForRendering);
219 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"updateAircraftModel"), callsign, model, originator);
225 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"updateAircraftNetworkModel"), callsign, model,
231 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"updateFastPositionEnabled"), callsign,
232 enableFastPositionSending);
237 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"updateAircraftSupportingGndFLag"), callsign,
243 return m_dBusInterface->
callDBusRet<
int>(QLatin1String(
"reInitializeAllAircraft"));
248 m_dBusInterface->
callDBus(QLatin1String(
"setFastPositionEnabledCallsigns"), callsigns);
263 return m_dBusInterface->
callDBusRet<ReverseLookupLogging>(QLatin1String(
"isReverseLookupMessagesEnabled"));
268 m_dBusInterface->
callDBus(QLatin1String(
"enableReverseLookupMessages"), enable);
284 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isAircraftPartsHistoryEnabled"));
289 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isRemoteAircraftSupportingParts"), callsign);
294 m_dBusInterface->
callDBus(QLatin1String(
"enableAircraftPartsHistory"), enabled);
299 return m_dBusInterface->
callDBusRet<QString>(QLatin1String(
"getNetworkStatistics"), reset, separator);
304 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"setNetworkStatisticsEnable"), enabled);
309 return m_dBusInterface->
callDBusRet<QStringList>(QLatin1String(
"getNetworkPresetValues"));
319 m_dBusInterface->
callDBus(QLatin1String(
"testCreateDummyOnlineAtcStations"), number);
325 m_dBusInterface->
callDBus(QLatin1String(
"testAddAircraftParts"), callsign, parts, incremental);
330 m_dBusInterface->
callDBus(QLatin1String(
"testReceivedTextMessages"), textMessages);
335 m_dBusInterface->
callDBus(QLatin1String(
"testReceivedAtisMessage"), callsign, msg);
340 m_dBusInterface->
callDBus(QLatin1String(
"testRequestAircraftConfig"), callsign);
346 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"testAddAltitudeOffset"), callsign, offset);
350 bool sendLiveryString,
const QString &extraModelString,
351 bool sendModelString,
const CCallsign &partnerCallsign,
355 QLatin1String(
"connectToNetwork"), server, extraLiveryString, sendLiveryString, extraModelString,
356 sendModelString, partnerCallsign, loginMode);
366 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isConnected"));
381 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"parseCommandLine"), commandLine, originator);
386 m_dBusInterface->
callDBus(QLatin1String(
"sendTextMessages"), textMessages);
391 m_dBusInterface->
callDBus(QLatin1String(
"sendFlightPlan"), flightPlan);
397 QLatin1String(
"loadFlightPlanFromNetwork"), callsign);
406 QMetaObject::Connection
411 Q_UNUSED(rawFsdMessageReceivedSlot);
ContextMode
How to handle a given context.
@ Remote
context runs in a different process.
The class providing facades (the contexts) for all DBus relevant operations.
virtual swift::misc::network::CUserList getUsersForCallsigns(const swift::misc::aviation::CCallsignSet &callsigns) const
Users for given callsigns, e.g. for voice room resolution.
virtual bool setAircraftEnabledFlag(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering)
Set the enabled flag without any further logic like sending signals.
virtual bool isConnected() const
Network connected?
virtual bool testAddAltitudeOffset(const swift::misc::aviation::CCallsign &callsign, const swift::misc::physical_quantities::CLength &offset=swift::misc::physical_quantities::CLength::null())
Add altitude offset for testing.
virtual bool updateFastPositionEnabled(const swift::misc::aviation::CCallsign &callsign, bool enableFastPositionSending)
Change fast position updates.
virtual swift::misc::CStatusMessageList getAircraftPartsHistory(const swift::misc::aviation::CCallsign &callsign) const
Get aircraft parts history.
virtual bool setNetworkStatisticsEnable(bool enabled)
Statistics enable/disable.
virtual swift::misc::aviation::CAtcStationList getClosestAtcStationsOnline(int number) const
The ATC list with online ATC controllers.
virtual QMetaObject::Connection connectRawFsdMessageSignal(QObject *receiver, RawFsdMessageReceivedSlot rawFsdMessageReceivedSlot)
Connect to receive raw fsd messages.
virtual swift::misc::simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const
Enabled reverse lookup logging?
virtual bool updateAircraftEnabled(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering)
Enable/disable rendering.
virtual swift::misc::aviation::CAtcStation getOnlineStationForCallsign(const swift::misc::aviation::CCallsign &callsign) const
Online station for callsign.
virtual swift::misc::simulation::CSimulatedAircraftList getAircraftInRange() const
Aircraft list.
virtual bool isOnlineStation(const swift::misc::aviation::CCallsign &callsign) const
Online station for callsign?
virtual swift::misc::simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const swift::misc::aviation::CCallsign &callsign) const
Aircraft for given callsign.
virtual swift::misc::aviation::CCallsignSet getAircraftInRangeCallsigns() const
Aircraft callsigns.
virtual void testReceivedTextMessages(const swift::misc::network::CTextMessageList &textMessages)
Inject a text message as received.
virtual swift::misc::CStatusMessage connectToNetwork(const swift::misc::network::CServer &server, const QString &extraLiveryString, bool sendLivery, const QString &extraModelString, bool sendModelString, const swift::misc::aviation::CCallsign &partnerCallsign, swift::misc::network::CLoginMode mode)
Connect to Network.
virtual bool isAircraftInRange(const swift::misc::aviation::CCallsign &callsign) const
Aircraft in range.
virtual void testCreateDummyOnlineAtcStations(int number)
Create dummy ATC stations for performance tests etc.
virtual int reInitializeAllAircraft()
Re-initialize all aircraft.
virtual void enableReverseLookupMessages(swift::misc::simulation::ReverseLookupLogging enable)
Enable reverse lookup logging.
virtual swift::misc::network::CLoginMode getLoginMode() const
Login mode.
virtual bool updateAircraftModel(const swift::misc::aviation::CCallsign &callsign, const swift::misc::simulation::CAircraftModel &model, const swift::misc::CIdentifier &originator)
Change model (for remote aircraft)
virtual swift::misc::CStatusMessage disconnectFromNetwork()
Disconnect from network.
virtual swift::misc::network::CServer getConnectedServer() const
Server which is connected, if not connected empty default object.
virtual void testRequestAircraftConfig(const swift::misc::aviation::CCallsign &callsign)
Request parts for callsign (from another client)
virtual void requestAircraftDataUpdates()
Request data updates (pilot's frequencies, ATIS, ..)
virtual void testAddAircraftParts(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CAircraftParts &parts, bool incremental)
Inject aircraft parts for testing.
virtual swift::misc::aviation::CCallsignSet getFastPositionEnabledCallsigns() const
Callsigns enabled for fast position updates.
virtual bool updateAircraftNetworkModel(const swift::misc::aviation::CCallsign &callsign, const swift::misc::simulation::CAircraftModel &model, const swift::misc::CIdentifier &originator)
Change network model (for remote aircraft)
virtual void requestAtisUpdates()
Request ATIS updates (for all stations)
virtual bool setOtherClient(const swift::misc::network::CClient &client)
Set client for given callsign.
virtual swift::misc::network::CServerList getVatsimFsdServers() const
Known FSD servers, available when data file was first read.
swift::misc::weather::CMetar getMetarForAirport(const swift::misc::aviation::CAirportIcaoCode &airportIcaoCode) const
Get METAR, if not available request it (code such as EDDF, KLAX)
virtual QString getNetworkStatistics(bool reset, const QString &separator)
Statistics info.
virtual void sendFlightPlan(const swift::misc::aviation::CFlightPlan &flightPlan)
Send flight plan.
virtual void testReceivedAtisMessage(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CInformationMessage &msg)
Inject an ATIS.
virtual swift::misc::CStatusMessageList getReverseLookupMessages(const swift::misc::aviation::CCallsign &callsign) const
Get reverse lookup messages.
virtual void sendTextMessages(const swift::misc::network::CTextMessageList &textMessages)
Text messages (radio and private chat messages)
virtual void setFastPositionEnabledCallsigns(swift::misc::aviation::CCallsignSet &callsigns)
Callsigns enabled for fast position updates.
virtual swift::misc::aviation::CCallsign getPartnerCallsign() const
Partner callsign if any.
virtual swift::misc::aviation::CAtcStationList getOnlineStationsForFrequency(const swift::misc::physical_quantities::CFrequency &frequency) const
Online stations for frequency.
virtual swift::misc::aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const
The ATC list with online ATC controllers.
virtual swift::misc::aviation::CAircraftPartsList getRemoteAircraftParts(const swift::misc::aviation::CCallsign &callsign) const
Get remote aircraft parts.
virtual swift::misc::network::CClientList getClients() const
Information about other clients.
virtual swift::misc::network::CUser getUserForCallsign(const swift::misc::aviation::CCallsign &callsign) const
User for given callsign, e.g. for text messages.
virtual swift::misc::network::CClientList getClientsForCallsigns(const swift::misc::aviation::CCallsignSet &callsigns) const
Clients for given callsign, e.g. to test/fetch direct aircraft model.
virtual bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator)
Parse a given command line.
virtual int getAircraftInRangeCount() const
Aircraft count.
virtual void enableAircraftPartsHistory(bool enabled)
Enable storing of aircraft parts.
virtual swift::misc::network::CUserList getUsers() const
Get all users.
virtual bool isRemoteAircraftSupportingParts(const swift::misc::aviation::CCallsign &callsign) const
Parts supported?
virtual bool updateAircraftSupportingGndFLag(const swift::misc::aviation::CCallsign &callsign, bool supportGndFlag)
Enable/disable support of gnd. flag.
virtual QStringList getNetworkPresetValues() const
Network preset values.
virtual swift::misc::aviation::CFlightPlan loadFlightPlanFromNetwork(const swift::misc::aviation::CCallsign &callsign) const
Load flight plan (from network)
virtual bool isAircraftPartsHistoryEnabled() const
Is storing the aircraft parts history enabled?
void relayBaseClassSignals(const QString &serviceName, QDBusConnection &connection, const QString &objectPath, const QString &interfaceName)
Relay signals from this class.
void textMessageSent(const swift::misc::network::CTextMessage &sentMessage)
Text message sent (by me)
void changedAircraftInRange()
Aircraft list has been changed.
void connectedServerChanged(const swift::misc::network::CServer &server)
The connected server has been changed.
void changedFastPositionUpdates(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Aircraft enabled / disabled.
void addedAircraft(const swift::misc::simulation::CSimulatedAircraft &remoteAircraft)
A new aircraft appeared.
void changedGndFlagCapability(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Changed gnd. flag capability.
void changedAtcStationsOnline()
ATC station (online) list has been changed.
void textMessagesReceived(const swift::misc::network::CTextMessageList &textMessages)
Text messages received (also private chat messages, radio channel messages)
static const QString & InterfaceName()
DBus interface name.
static const QString & ObjectPath()
DBus object path.
void kicked(const QString &kickMessage)
User has been kicked from network.
std::function< void(const swift::misc::network::CRawFsdMessage &)> RawFsdMessageReceivedSlot
Raw FSD message receiver functor.
void changedAtcStationsOnlineDigest()
Digest signal changedAtcStationsOnline()
void changedRemoteAircraftEnabled(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Aircraft enabled / disabled.
void connectionStatusChanged(const swift::misc::network::CConnectionStatus &from, const swift::misc::network::CConnectionStatus &to)
Connection status changed.
void atcStationDisconnected(const swift::misc::aviation::CAtcStation &atcStation)
ATC station disconnected.
void changedAircraftInRangeDigest()
Digest signal changedAircraftInRange()
void removedAircraft(const swift::misc::aviation::CCallsign &callsign)
An aircraft disappeared.
static const QString & coreServiceName()
Default service name.
Used for hand written interface based on virtual methods.
void callDBus(QLatin1String method, Args &&...args)
Call DBus, no return value.
Ret callDBusRet(QLatin1String method, Args &&...args)
Call DBus with synchronous return value.
Value object encapsulating information identifying a component of a modular distributed swift process...
Streamable status message, e.g.
Status messages, e.g. from Core -> GUI.
Value object encapsulating information of aircraft's parts.
Value object encapsulating a list of aircraft parts.
Value object encapsulating information of airport ICAO data.
Value object encapsulating information about an ATC station.
Value object for a list of ATC stations.
Value object encapsulating information of a callsign.
Value object for a set of callsigns.
Value object for a flight plan.
Value object encapsulating a list of voice rooms.
Value object encapsulating information about a connection status.
Value object encapsulating information about login mode.
Value object encapsulating information of a server.
Value object encapsulating a list of servers.
Value object encapsulating information of a text message.
Value object encapsulating a list of text messages.
Value object encapsulating information of a user.
Value object encapsulating a list of voice rooms.
Physical unit length (length)
Aircraft model (used by another pilot, my models on disk)
Comprehensive information of an aircraft.
Value object encapsulating a list of aircraft.
Free functions in swift::misc.