6 #ifndef SWIFT_CORE_CONTEXT_CONTEXTNETWORK_H
7 #define SWIFT_CORE_CONTEXT_CONTEXTNETWORK_H
11 #include <QCommandLineOption>
45 #define SWIFT_CORE_CONTEXTNETWORK_INTERFACENAME "org.swift_project.swift_core.contextnetwork"
49 #define SWIFT_CORE_CONTEXTNETWORK_OBJECTPATH "/network"
51 class QDBusConnection;
70 namespace swift::core::context
94 virtual QString
getPathAndContextId()
const override {
return this->buildPathAndContextId(ObjectPath()); }
247 const QString &extraLiveryString,
bool sendLivery,
248 const QString &extraModelString,
bool sendModelString,
286 bool enabledForRendering) = 0;
290 bool enabledForRendering) = 0;
294 bool supportGndFlag) = 0;
308 bool enableFastPositionSending) = 0;
381 virtual QMetaObject::Connection
385 static const QList<QCommandLineOption> &getCmdLineOptions();
387 #ifdef SWIFT_VATSIM_SUPPORT
389 static bool getCmdLineClientIdAndKey(
int &
id, QString &key);
ContextMode
How to handle a given context.
The class providing facades (the contexts) for all DBus relevant operations.
Base for all context classes.
void textMessageSent(const swift::misc::network::CTextMessage &sentMessage)
Text message sent (by me)
virtual void sendFlightPlan(const swift::misc::aviation::CFlightPlan &flightPlan)=0
Send flight plan.
virtual swift::misc::CStatusMessage disconnectFromNetwork()=0
Disconnect from network.
virtual bool testAddAltitudeOffset(const swift::misc::aviation::CCallsign &callsign, const swift::misc::physical_quantities::CLength &offset=swift::misc::physical_quantities::CLength::null())=0
Add altitude offset for testing.
void changedAircraftInRange()
Aircraft list has been changed.
virtual swift::misc::network::CUserList getUsers() const =0
Get all users.
virtual swift::misc::aviation::CCallsignSet getAircraftInRangeCallsigns() const =0
Aircraft callsigns.
void supervisorTextMessageReceived(const swift::misc::network::CTextMessage &message)
A supervisor text message was received.
void connectedServerChanged(const swift::misc::network::CServer &server)
The connected server has been changed.
virtual bool isAircraftPartsHistoryEnabled() const =0
Is storing the aircraft parts history enabled?
void changedFastPositionUpdates(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Aircraft enabled / disabled.
virtual swift::misc::CStatusMessageList getAircraftPartsHistory(const swift::misc::aviation::CCallsign &callsign) const =0
Get aircraft parts history.
void addedAircraft(const swift::misc::simulation::CSimulatedAircraft &remoteAircraft)
A new aircraft appeared.
virtual swift::misc::network::CClientList getClients() const =0
Information about other clients.
virtual QStringList getNetworkPresetValues() const =0
Network preset values.
virtual swift::misc::aviation::CFlightPlan loadFlightPlanFromNetwork(const swift::misc::aviation::CCallsign &callsign) const =0
Load flight plan (from network)
void changedGndFlagCapability(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Changed gnd. flag capability.
virtual swift::misc::network::CUserList getUsersForCallsigns(const swift::misc::aviation::CCallsignSet &callsigns) const =0
Users for given callsigns, e.g. for voice room resolution.
void muteRequestReceived(bool mute)
Mute request received.
virtual swift::misc::aviation::CAtcStationList getOnlineStationsForFrequency(const swift::misc::physical_quantities::CFrequency &frequency) const =0
Online stations for frequency.
void changedRemoteAircraftModel(const swift::misc::simulation::CSimulatedAircraft &aircraft, const swift::misc::CIdentifier &originator)
Aircraft model was changed.
virtual swift::misc::simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const swift::misc::aviation::CCallsign &callsign) const =0
Aircraft for given callsign.
void changedAtcStationsOnline()
ATC station (online) list has been changed.
virtual bool updateAircraftModel(const swift::misc::aviation::CCallsign &callsign, const swift::misc::simulation::CAircraftModel &model, const swift::misc::CIdentifier &originator)=0
Change model (for remote aircraft)
virtual swift::misc::network::CServerList getVatsimFsdServers() const =0
Known FSD servers, available when data file was first read.
virtual bool setOtherClient(const swift::misc::network::CClient &client)=0
Set client for given callsign.
virtual bool updateAircraftEnabled(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering)=0
Enable/disable rendering.
virtual bool updateFastPositionEnabled(const swift::misc::aviation::CCallsign &callsign, bool enableFastPositionSending)=0
Change fast position updates.
virtual void testCreateDummyOnlineAtcStations(int number)=0
Create dummy ATC stations for performance tests etc.
void textMessagesReceived(const swift::misc::network::CTextMessageList &textMessages)
Text messages received (also private chat messages, radio channel messages)
virtual swift::misc::aviation::CAircraftPartsList getRemoteAircraftParts(const swift::misc::aviation::CCallsign &callsign) const =0
Get remote aircraft parts.
virtual bool updateAircraftSupportingGndFLag(const swift::misc::aviation::CCallsign &callsign, bool supportGndFlag)=0
Enable/disable support of gnd. flag.
virtual swift::misc::network::CUser getUserForCallsign(const swift::misc::aviation::CCallsign &callsign) const =0
User for given callsign, e.g. for text messages.
virtual void requestAircraftDataUpdates()=0
Request data updates (pilot's frequencies, ATIS, ..)
static const QString & InterfaceName()
DBus interface name.
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 loginMode)=0
Connect to Network.
QString getLoginModeAsString() const
Mode as string.
static const QString & ObjectPath()
DBus object path.
virtual void setFastPositionEnabledCallsigns(swift::misc::aviation::CCallsignSet &callsigns)=0
Callsigns enabled for fast position updates.
virtual void requestAtisUpdates()=0
Request ATIS updates (for all stations)
virtual swift::misc::CStatusMessageList getReverseLookupMessages(const swift::misc::aviation::CCallsign &callsign) const =0
Get reverse lookup messages.
virtual bool isOnlineStation(const swift::misc::aviation::CCallsign &callsign) const =0
Online station for callsign?
void kicked(const QString &kickMessage)
User has been kicked from network.
virtual void sendTextMessages(const swift::misc::network::CTextMessageList &textMessages)=0
Text messages (radio and private chat messages)
std::function< void(const swift::misc::network::CRawFsdMessage &)> RawFsdMessageReceivedSlot
Raw FSD message receiver functor.
virtual bool isRemoteAircraftSupportingParts(const swift::misc::aviation::CCallsign &callsign) const =0
Parts supported?
virtual QMetaObject::Connection connectRawFsdMessageSignal(QObject *receiver, RawFsdMessageReceivedSlot rawFsdMessageReceivedSlot)=0
Connect to receive raw fsd messages.
virtual swift::misc::aviation::CCallsignSet getFastPositionEnabledCallsigns() const =0
Callsigns enabled for fast position updates.
virtual QString getPathAndContextId() const
Id and path name for round trip protection.
virtual swift::misc::aviation::CAtcStation getOnlineStationForCallsign(const swift::misc::aviation::CCallsign &callsign) const =0
Online station for callsign.
void changedAtcStationsOnlineDigest()
Digest signal changedAtcStationsOnline()
IContextNetwork(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime)
Constructor.
virtual void enableAircraftPartsHistory(bool enabled)=0
Enable storing of aircraft parts.
virtual swift::misc::network::CLoginMode getLoginMode() const =0
Login mode.
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.
virtual swift::misc::simulation::CSimulatedAircraftList getAircraftInRange() const =0
Aircraft list.
void atcStationDisconnected(const swift::misc::aviation::CAtcStation &atcStation)
ATC station disconnected.
virtual int reInitializeAllAircraft()=0
Re-initialize all aircraft.
virtual QString getNetworkStatistics(bool reset, const QString &separator)=0
Statistics info.
void severeNetworkError(const QString &errorMessage)
Network error.
void readyForModelMatching(const swift::misc::simulation::CSimulatedAircraft &renderedAircraft)
Read for model matching.
virtual void testReceivedTextMessages(const swift::misc::network::CTextMessageList &textMessages)=0
Inject a text message as received.
virtual swift::misc::simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const =0
Enabled reverse lookup logging?
virtual swift::misc::aviation::CCallsign getPartnerCallsign() const =0
Partner callsign if any.
virtual void testReceivedAtisMessage(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CInformationMessage &msg)=0
Inject an ATIS.
virtual swift::misc::weather::CMetar getMetarForAirport(const swift::misc::aviation::CAirportIcaoCode &airportIcaoCode) const =0
Get METAR, if not available request it (code such as EDDF, KLAX)
virtual swift::misc::network::CServer getConnectedServer() const =0
Server which is connected, if not connected empty default object.
virtual ~IContextNetwork()
Destructor.
virtual swift::misc::aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const =0
The ATC list with online ATC controllers.
void changedAircraftInRangeDigest()
Digest signal changedAircraftInRange()
virtual swift::misc::network::CClientList getClientsForCallsigns(const swift::misc::aviation::CCallsignSet &callsigns) const =0
Clients for given callsign, e.g. to test/fetch direct aircraft model.
virtual swift::misc::aviation::CAtcStationList getClosestAtcStationsOnline(int number) const =0
The ATC list with online ATC controllers.
virtual void testRequestAircraftConfig(const swift::misc::aviation::CCallsign &callsign)=0
Request parts for callsign (from another client)
void removedAircraft(const swift::misc::aviation::CCallsign &callsign)
An aircraft disappeared.
virtual bool isAircraftInRange(const swift::misc::aviation::CCallsign &callsign) const =0
Aircraft in range.
virtual bool setAircraftEnabledFlag(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering)=0
Set the enabled flag without any further logic like sending signals.
virtual void testAddAircraftParts(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CAircraftParts &parts, bool incremental)=0
Inject aircraft parts for testing.
virtual bool updateAircraftNetworkModel(const swift::misc::aviation::CCallsign &callsign, const swift::misc::simulation::CAircraftModel &model, const swift::misc::CIdentifier &originator)=0
Change network model (for remote aircraft)
virtual bool setNetworkStatisticsEnable(bool enabled)=0
Statistics enable/disable.
virtual bool isConnected() const =0
Network connected?
virtual int getAircraftInRangeCount() const =0
Aircraft count.
virtual void enableReverseLookupMessages(swift::misc::simulation::ReverseLookupLogging enable)=0
Enable reverse lookup logging.
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 for a raw FSD message.
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)
static const CLength & null()
NULL PQ.
Aircraft model (used by another pilot, my models on disk)
Comprehensive information of an aircraft.
Value object encapsulating a list of aircraft.
#define SWIFT_CORE_CONTEXTNETWORK_OBJECTPATH
DBus object path for context.
#define SWIFT_CORE_CONTEXTNETWORK_INTERFACENAME
DBus interface for context.
Free functions in swift::misc.
#define SWIFT_CORE_EXPORT
Export a class or function from the library.