6 #ifndef SWIFT_SIMPLUGIN_SIMULATOR_FS9_H
7 #define SWIFT_SIMPLUGIN_SIMULATOR_FS9_H
15 #include "../fscommon/simulatorfscommon.h"
18 #include "lobbyclient.h"
28 namespace swift::simplugin::fs9
38 const QSharedPointer<CFs9Host> &fs9Host,
const QSharedPointer<CLobbyClient> &lobbyClient,
79 virtual void timerEvent(QTimerEvent *event)
override;
90 void processFs9Message(
const QByteArray &message);
100 void disconnectAllClients();
103 void synchronizeTime();
107 QMetaObject::Connection m_connectionHostMessages;
108 bool m_simConnected =
false;
109 QSharedPointer<CFs9Host> m_fs9Host;
110 QSharedPointer<CLobbyClient> m_lobbyClient;
112 static constexpr
int SkipUpdateCyclesForCockpit = 10;
126 const QSharedPointer<CFs9Host> &fs9Host,
const QSharedPointer<CLobbyClient> &lobbyClient);
140 bool checkConnection(
bool canLobbyConnect);
142 QTimer *m_timer =
nullptr;
143 bool m_isConnecting =
false;
144 bool m_isStarted =
false;
145 QSharedPointer<CFs9Host> m_fs9Host;
146 QSharedPointer<CLobbyClient> m_lobbyClient;
147 FsCommon::CFsuipc *m_fsuipc =
nullptr;
154 Q_PLUGIN_METADATA(IID
"org.swift-project.blaswift_coreckcore.simulatorinterface" FILE
"simulatorfs9.json")
176 QSharedPointer<CFs9Host> m_fs9Host;
177 QSharedPointer<CLobbyClient> m_lobbyClient;
Factory pattern class to create instances of ISimulator.
Interface to a simulator.
Interface to a simulator listener.
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 information of an aircraft's situation.
Value object encapsulating information of a callsign.
Value object for a set of callsigns.
Value object encapsulating information of a text message.
Direct in memory access to client (network client) data.
Comprehensive information of an aircraft.
Describing a simulator plugin.
Direct threadsafe in memory access to own aircraft.
Direct thread safe in memory access to remote aircraft.
ClientStatus
Connection status.
Factory implementation to create CSimulatorFs9 instances.
virtual swift::core::ISimulatorListener * createListener(const swift::misc::simulation::CSimulatorPluginInfo &info)
Simulator listener instance.
virtual swift::core::ISimulator * create(const swift::misc::simulation::CSimulatorPluginInfo &info, swift::misc::simulation::IOwnAircraftProvider *ownAircraftProvider, swift::misc::simulation::IRemoteAircraftProvider *remoteAircraftProvider, swift::misc::network::IClientProvider *clientProvider)
Create a new instance of a driver.
virtual ~CSimulatorFs9Factory()
Destructor.
CSimulatorFs9Factory(QObject *parent=nullptr)
Constructor.
FS9 Simulator Implementation.
virtual bool isConnected() const
virtual ~CSimulatorFs9()=default
Destructor.
virtual bool physicallyAddRemoteAircraft(const swift::misc::simulation::CSimulatedAircraft &newRemoteAircraft)
virtual void timerEvent(QTimerEvent *event)
Timer event dispatching.
virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const
virtual bool isSimulating() const
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const
virtual bool disconnectFrom()
virtual bool physicallyRemoveRemoteAircraft(const swift::misc::aviation::CCallsign &callsign)
CSimulatorFs9(const swift::misc::simulation::CSimulatorPluginInfo &info, const QSharedPointer< CFs9Host > &fs9Host, const QSharedPointer< CLobbyClient > &lobbyClient, swift::misc::simulation::IOwnAircraftProvider *ownAircraftProvider, swift::misc::simulation::IRemoteAircraftProvider *remoteAircraftProvider, swift::misc::network::IClientProvider *clientProvider, QObject *parent=nullptr)
Constructor, parameters as in.
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const
virtual bool updateOwnSimulatorCockpit(const swift::misc::simulation::CSimulatedAircraft &ownAircraft, const swift::misc::CIdentifier &originator)
virtual bool testSendSituationAndParts(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CAircraftSituation &situation, const swift::misc::aviation::CAircraftParts &parts)
virtual bool updateOwnSimulatorSelcal(const swift::misc::aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator)
virtual int physicallyRemoveAllRemoteAircraft()
Listener for FS9 Listener starts the FS9 multiplayer host and tries to make the running instance of s...
virtual void stopImpl()
Plugin specific implementation to stop listener.
CSimulatorFs9Listener(const swift::misc::simulation::CSimulatorPluginInfo &info, const QSharedPointer< CFs9Host > &fs9Host, const QSharedPointer< CLobbyClient > &lobbyClient)
Constructor.
virtual void startImpl()
Plugin specific implementation to start listener.
virtual void checkImpl()
Plugin specific implementation to check.
Class representing a FSUIPC "interface".