refactor: Rename blackcore to swift::core

This commit is contained in:
Lars Toenning
2024-11-10 20:21:07 +01:00
parent 9142a3649b
commit 3a2447770f
482 changed files with 2611 additions and 2611 deletions

View File

@@ -0,0 +1,469 @@
// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
//! \file
#ifndef SWIFT_CORE_CONTEXT_CONTEXTNETWORK_IMPL_H
#define SWIFT_CORE_CONTEXT_CONTEXTNETWORK_IMPL_H
#include <QList>
#include <QMetaObject>
#include <QObject>
#include <QString>
#include <QtGlobal>
#include <QQueue>
#include <functional>
#include "core/swiftcoreexport.h"
#include "core/context/contextnetwork.h"
#include "core/corefacadeconfig.h"
#include "misc/simulation/aircraftmodel.h"
#include "misc/simulation/airspaceaircraftsnapshot.h"
#include "misc/simulation/remoteaircraftprovider.h"
#include "misc/simulation/simulatedaircraft.h"
#include "misc/simulation/simulatedaircraftlist.h"
#include "misc/simulation/simulationenvironmentprovider.h"
#include "misc/weather/metar.h"
#include "misc/weather/metarlist.h"
#include "misc/aviation/aircraftpartslist.h"
#include "misc/aviation/aircraftsituationlist.h"
#include "misc/aviation/airporticaocode.h"
#include "misc/aviation/atcstation.h"
#include "misc/aviation/atcstationlist.h"
#include "misc/aviation/callsignset.h"
#include "misc/aviation/flightplan.h"
#include "misc/network/clientlist.h"
#include "misc/network/clientprovider.h"
#include "misc/network/server.h"
#include "misc/network/serverlist.h"
#include "misc/network/textmessagelist.h"
#include "misc/network/user.h"
#include "misc/network/userlist.h"
#include "misc/pq/length.h"
#include "misc/statusmessage.h"
#include "misc/digestsignal.h"
#include "misc/identifier.h"
#include "misc/simplecommandparser.h"
// clazy:excludeall=const-signal-or-slot
class QTimer;
namespace swift::misc
{
class CDBusServer;
namespace aviation
{
class CAircraftParts;
class CAircraftSituation;
class CCallsign;
}
}
namespace swift::core
{
class CAirspaceMonitor;
class CCoreFacade;
namespace fsd
{
class CFSDClient;
}
namespace context
{
//! Network context implementation
class SWIFT_CORE_EXPORT CContextNetwork :
public IContextNetwork,
public swift::misc::simulation::IRemoteAircraftProvider,
public swift::misc::network::IClientProvider
{
Q_OBJECT
Q_INTERFACES(swift::misc::simulation::IRemoteAircraftProvider)
Q_INTERFACES(swift::misc::network::IClientProvider)
Q_CLASSINFO("D-Bus Interface", SWIFT_CORE_CONTEXTNETWORK_INTERFACENAME)
friend class IContextNetwork;
friend class swift::core::CCoreFacade;
public:
//! Destructor
virtual ~CContextNetwork() override;
// remoteaircraftprovider
virtual swift::misc::aviation::CAircraftSituationList remoteAircraftSituations(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CAircraftSituation remoteAircraftSituation(const swift::misc::aviation::CCallsign &callsign, int index) const override;
virtual swift::misc::MillisecondsMinMaxMean remoteAircraftSituationsTimestampDifferenceMinMaxMean(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CAircraftSituationList latestRemoteAircraftSituations() const override;
virtual swift::misc::aviation::CAircraftSituationList latestOnGroundProviderElevations() const override;
virtual int remoteAircraftSituationsCount(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CAircraftPartsList remoteAircraftParts(const swift::misc::aviation::CCallsign &callsign) const override;
virtual int remoteAircraftPartsCount(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CCallsignSet remoteAircraftSupportingParts() const override;
virtual swift::misc::aviation::CAircraftSituationChangeList remoteAircraftSituationChanges(const swift::misc::aviation::CCallsign &callsign) const override;
virtual int remoteAircraftSituationChangesCount(const swift::misc::aviation::CCallsign &callsign) const override;
virtual bool updateAircraftRendered(const swift::misc::aviation::CCallsign &callsign, bool rendered) override;
virtual int updateMultipleAircraftRendered(const swift::misc::aviation::CCallsignSet &callsigns, bool rendered) override;
virtual int updateMultipleAircraftEnabled(const swift::misc::aviation::CCallsignSet &callsigns, bool enabled) override;
virtual int updateAircraftGroundElevation(const swift::misc::aviation::CCallsign &callsign, const swift::misc::geo::CElevationPlane &elevation, swift::misc::aviation::CAircraftSituation::GndElevationInfo info, bool *setForOnGroundPosition) override;
virtual void updateMarkAllAsNotRendered() override;
virtual swift::misc::physical_quantities::CLength getCGFromDB(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::physical_quantities::CLength getCGFromDB(const QString &modelString) const override;
virtual void rememberCGFromDB(const swift::misc::physical_quantities::CLength &cgFromDB, const swift::misc::aviation::CCallsign &callsign) override;
virtual void rememberCGFromDB(const swift::misc::physical_quantities::CLength &cgFromDB, const QString &modelString) override;
virtual swift::misc::simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const override;
virtual swift::misc::geo::CElevationPlane averageElevationOfNonMovingAircraft(const swift::misc::aviation::CAircraftSituation &reference, const swift::misc::physical_quantities::CLength &range, int minValues = 1, int sufficientValues = 2) const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::connectRemoteAircraftProviderSignals
virtual QList<QMetaObject::Connection> connectRemoteAircraftProviderSignals(
QObject *receiver,
std::function<void(const swift::misc::aviation::CAircraftSituation &)> addedSituationSlot,
std::function<void(const swift::misc::aviation::CCallsign &, const swift::misc::aviation::CAircraftParts &)> addedPartsSlot,
std::function<void(const swift::misc::aviation::CCallsign &)> removedAircraftSlot,
std::function<void(const swift::misc::simulation::CAirspaceAircraftSnapshot &)> aircraftSnapshotSlot) override;
// clientprovider
virtual void setClients(const swift::misc::network::CClientList &clients) override;
virtual void clearClients() override;
virtual swift::misc::network::CClient getClientOrDefaultForCallsign(const swift::misc::aviation::CCallsign &callsign) const override;
virtual bool hasClientInfo(const swift::misc::aviation::CCallsign &callsign) const override;
virtual bool addNewClient(const swift::misc::network::CClient &client) override;
virtual int updateOrAddClient(const swift::misc::aviation::CCallsign &callsign, const swift::misc::CPropertyIndexVariantMap &vm, bool skipEqualValues = true) override;
virtual int removeClient(const swift::misc::aviation::CCallsign &callsign) override;
virtual bool autoAdjustCientGndCapability(const swift::misc::aviation::CAircraftSituation &situation) override;
virtual bool addClientGndCapability(const swift::misc::aviation::CCallsign &callsign) override;
virtual bool setClientGndCapability(const swift::misc::aviation::CCallsign &callsign, bool supportGndFlag) override;
virtual void markAsSwiftClient(const swift::misc::aviation::CCallsign &callsign) override;
//! \copydoc IContextNetwork::connectRawFsdMessageSignal
virtual QMetaObject::Connection connectRawFsdMessageSignal(QObject *receiver, RawFsdMessageReceivedSlot rawFsdMessageReceivedSlot) override;
//! Gracefully shut down, e.g. for thread safety
void gracefulShutdown();
//! Network library
//! \protected
//! \remarks normally only for core facade internal usage
//! \remarks public so values can be logged/monitored
fsd::CFSDClient *fsdClient() const { return m_fsdClient; }
//! Airspace
//! \protected
//! \remarks normally only for core facade internal usage
//! \remarks public so values can be logged/monitored
CAirspaceMonitor *airspace() const { return m_airspace; }
public slots:
// remoteaircraftprovider
// emit signal when changed
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateAircraftEnabled
virtual bool updateAircraftEnabled(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateAircraftModel
virtual bool updateAircraftModel(const swift::misc::aviation::CCallsign &callsign, const swift::misc::simulation::CAircraftModel &model, const swift::misc::CIdentifier &originator) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateAircraftNetworkModel
virtual bool updateAircraftNetworkModel(const swift::misc::aviation::CCallsign &callsign, const swift::misc::simulation::CAircraftModel &model, const swift::misc::CIdentifier &originator) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateFastPositionEnabled
virtual bool updateFastPositionEnabled(const swift::misc::aviation::CCallsign &callsign, bool enableFastPositonUpdates) override;
//! \copydoc swift::core::context::IContextNetwork::updateAircraftSupportingGndFLag
virtual bool updateAircraftSupportingGndFLag(const swift::misc::aviation::CCallsign &callsign, bool supportGndFlag) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::enableReverseLookupMessages
virtual void enableReverseLookupMessages(swift::misc::simulation::ReverseLookupLogging enable) override;
// plain vanilla passing to airspace monitor
//! \copydoc swift::core::context::IContextNetwork::setAircraftEnabledFlag
virtual bool setAircraftEnabledFlag(const swift::misc::aviation::CCallsign &callsign, bool enabledForRendering) override;
//! \copydoc swift::core::context::IContextNetwork::reInitializeAllAircraft
virtual int reInitializeAllAircraft() override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateCG
virtual bool updateCG(const swift::misc::aviation::CCallsign &callsign, const swift::misc::physical_quantities::CLength &cg) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateCGForModel
virtual swift::misc::aviation::CCallsignSet updateCGForModel(const QString &modelString, const swift::misc::physical_quantities::CLength &cg) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::updateCGAndModelString
virtual bool updateCGAndModelString(const swift::misc::aviation::CCallsign &callsign, const swift::misc::physical_quantities::CLength &cg, const QString &modelString) override;
//! \copydoc swift::core::context::IContextNetwork::getAircraftInRange
virtual swift::misc::simulation::CSimulatedAircraftList getAircraftInRange() const override;
//! \copydoc swift::core::context::IContextNetwork::getAircraftInRangeCallsigns
virtual swift::misc::aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
//! \copydoc swift::core::context::IContextNetwork::getAircraftInRangeCount
virtual int getAircraftInRangeCount() const override;
//! \copydoc swift::core::context::IContextNetwork::isAircraftInRange
virtual bool isAircraftInRange(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::isVtolAircraft
virtual bool isVtolAircraft(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getAircraftInRangeForCallsign
virtual swift::misc::simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::getAircraftInRangeModelForCallsign
virtual swift::misc::simulation::CAircraftModel getAircraftInRangeModelForCallsign(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getReverseLookupMessages
virtual swift::misc::CStatusMessageList getReverseLookupMessages(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::isReverseLookupMessagesEnabled
virtual swift::misc::simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const override;
//! \copydoc swift::core::context::IContextNetwork::getAircraftPartsHistory
virtual swift::misc::CStatusMessageList getAircraftPartsHistory(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getRemoteAircraftParts
virtual swift::misc::aviation::CAircraftPartsList getRemoteAircraftParts(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::getRemoteAircraftSupportingPartsCount
virtual int getRemoteAircraftSupportingPartsCount() const override;
//! \copydoc swift::core::context::IContextNetwork::isAircraftPartsHistoryEnabled
virtual bool isAircraftPartsHistoryEnabled() const override;
//! \copydoc swift::core::context::IContextNetwork::isRemoteAircraftSupportingParts
virtual bool isRemoteAircraftSupportingParts(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::enableAircraftPartsHistory
virtual void enableAircraftPartsHistory(bool enabled) override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::aircraftSituationsAdded
virtual int aircraftSituationsAdded() const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::aircraftPartsAdded
virtual int aircraftPartsAdded() const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::situationsLastModified
virtual qint64 situationsLastModified(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::misc::simulation::IRemoteAircraftProvider::partsLastModified
virtual qint64 partsLastModified(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getNetworkStatistics
virtual QString getNetworkStatistics(bool reset, const QString &separator) override;
//! \copydoc swift::core::context::IContextNetwork::setNetworkStatisticsEnable
virtual bool setNetworkStatisticsEnable(bool enabled) override;
//! \copydoc swift::core::context::IContextNetwork::testAddAltitudeOffset
virtual bool testAddAltitudeOffset(const swift::misc::aviation::CCallsign &callsign, const swift::misc::physical_quantities::CLength &offset = swift::misc::physical_quantities::CLength::null()) override;
//! \copydoc swift::core::context::IContextNetwork::getNetworkPresetValues
virtual QStringList getNetworkPresetValues() const override;
//! \copydoc swift::core::context::IContextNetwork::getPartnerCallsign
virtual swift::misc::aviation::CCallsign getPartnerCallsign() const override;
//! \copydoc swift::misc::network::IClientProvider::getClients
virtual swift::misc::network::CClientList getClients() const override;
//! \copydoc swift::misc::network::IClientProvider::getClientsForCallsigns
virtual swift::misc::network::CClientList getClientsForCallsigns(const swift::misc::aviation::CCallsignSet &callsigns) const override;
//! \copydoc swift::misc::network::IClientProvider::setOtherClient
virtual bool setOtherClient(const swift::misc::network::CClient &client) override;
//! In transition state, e.g. connecting, disconnecting.
//! \details In such a state it is advisable to wait until an end state (connected/disconnected) is reached
//! \remarks Intentionally only running locally, not in interface
bool isPendingConnection() const;
// --------------------- IContextNetwork implementations ---------------------
//! \ingroup swiftdotcommands
//! <pre>
//! .m .msg .chat callsign|freq. message message text
//! .altos .altoffset altitude offset for testing
//! .addtimeos .addtimeoffset additional offset time for testing
//! .reinit .reinitialize re-initialize all aircraft
//! .watchdog on|off watchdog on/off
//! .wallop message send wallop message
//! </pre>
//! \copydoc IContextNetwork::parseCommandLine
virtual bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator) override;
//! Register help
static void registerHelp()
{
if (swift::misc::CSimpleCommandParser::registered("swift::core::CContextNetwork")) { return; }
swift::misc::CSimpleCommandParser::registerCommand({ ".m", "alias: .msg, .chat" });
swift::misc::CSimpleCommandParser::registerCommand({ ".m message text", "send text message" });
swift::misc::CSimpleCommandParser::registerCommand({ ".m callsign message text", "send text message" });
swift::misc::CSimpleCommandParser::registerCommand({ ".altos callsign|? offsetvalue", "set altitude offset value (testing), ?=all" });
swift::misc::CSimpleCommandParser::registerCommand({ ".addtimeos offsetvalue", "add (delta) time offset (testing), e.g. 50ms" });
swift::misc::CSimpleCommandParser::registerCommand({ ".watchdog on|off", "enable/disable network watchdog (testing)" });
swift::misc::CSimpleCommandParser::registerCommand({ ".wallop message", "send a wallop message" });
swift::misc::CSimpleCommandParser::registerCommand({ ".reinit", "re-initialize all aircraft" });
swift::misc::CSimpleCommandParser::registerCommand({ ".enable", "alias: .unignore" });
swift::misc::CSimpleCommandParser::registerCommand({ ".enable callsign", "enable/unignore callsign" });
swift::misc::CSimpleCommandParser::registerCommand({ ".disable", "alias: .ignore" });
swift::misc::CSimpleCommandParser::registerCommand({ ".disable callsign", "disable/ignore callsign" });
}
//! \copydoc swift::core::context::IContextNetwork::getAtcStationsOnline
virtual swift::misc::aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override;
//! \copydoc swift::core::context::IContextNetwork::getClosestAtcStationsOnline
virtual swift::misc::aviation::CAtcStationList getClosestAtcStationsOnline(int number) const override;
//! \copydoc swift::core::context::IContextNetwork::getOnlineStationForCallsign
virtual swift::misc::aviation::CAtcStation getOnlineStationForCallsign(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getOnlineStationsForFrequency
virtual swift::misc::aviation::CAtcStationList getOnlineStationsForFrequency(const swift::misc::physical_quantities::CFrequency &frequency) const override;
//! \copydoc swift::core::context::IContextNetwork::isOnlineStation
virtual bool isOnlineStation(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::connectToNetwork
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) override;
//! \copydoc swift::core::context::IContextNetwork::getConnectedServer
virtual swift::misc::network::CServer getConnectedServer() const override;
//! \copydoc swift::core::context::IContextNetwork::getLoginMode
virtual swift::misc::network::CLoginMode getLoginMode() const override;
//! \copydoc swift::core::context::IContextNetwork::disconnectFromNetwork
virtual swift::misc::CStatusMessage disconnectFromNetwork() override;
//! \copydoc swift::core::context::IContextNetwork::isConnected
virtual bool isConnected() const override;
//! \copydoc swift::core::context::IContextNetwork::sendTextMessages
virtual void sendTextMessages(const swift::misc::network::CTextMessageList &textMessages) override;
//! \copydoc swift::core::context::IContextNetwork::sendFlightPlan
virtual void sendFlightPlan(const swift::misc::aviation::CFlightPlan &flightPlan) override;
//! \copydoc swift::core::context::IContextNetwork::loadFlightPlanFromNetwork
virtual swift::misc::aviation::CFlightPlan loadFlightPlanFromNetwork(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getMetarForAirport
swift::misc::weather::CMetar getMetarForAirport(const swift::misc::aviation::CAirportIcaoCode &airportIcaoCode) const override;
//! \copydoc swift::core::context::IContextNetwork::getUsers
virtual swift::misc::network::CUserList getUsers() const override;
//! \copydoc swift::core::context::IContextNetwork::getUsersForCallsigns
virtual swift::misc::network::CUserList getUsersForCallsigns(const swift::misc::aviation::CCallsignSet &callsigns) const override;
//! \copydoc swift::core::context::IContextNetwork::getUserForCallsign
virtual swift::misc::network::CUser getUserForCallsign(const swift::misc::aviation::CCallsign &callsign) const override;
//! \copydoc swift::core::context::IContextNetwork::getVatsimFsdServers
virtual swift::misc::network::CServerList getVatsimFsdServers() const override;
//! \copydoc swift::core::context::IContextNetwork::requestAircraftDataUpdates
virtual void requestAircraftDataUpdates() override;
//! \copydoc swift::core::context::IContextNetwork::requestAtisUpdates
virtual void requestAtisUpdates() override;
//! \copydoc swift::core::context::IContextNetwork::setFastPositionEnabledCallsigns
virtual void setFastPositionEnabledCallsigns(swift::misc::aviation::CCallsignSet &callsigns) override;
//! \copydoc swift::core::context::IContextNetwork::getFastPositionEnabledCallsigns
virtual swift::misc::aviation::CCallsignSet getFastPositionEnabledCallsigns() const override;
//! \copydoc swift::core::context::IContextNetwork::getLibraryInfo
virtual QString getLibraryInfo(bool detailed) const override;
//! \copydoc swift::core::context::IContextNetwork::testCreateDummyOnlineAtcStations
virtual void testCreateDummyOnlineAtcStations(int number) override;
//! \copydoc swift::core::context::IContextNetwork::testAddAircraftParts
virtual void testAddAircraftParts(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CAircraftParts &parts, bool incremental) override;
//! \copydoc swift::core::context::IContextNetwork::testReceivedAtisMessage
virtual void testReceivedAtisMessage(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CInformationMessage &msg) override;
//! \copydoc swift::core::context::IContextNetwork::testReceivedTextMessages
virtual void testReceivedTextMessages(const swift::misc::network::CTextMessageList &textMessages) override;
//! \copydoc swift::core::context::IContextNetwork::testRequestAircraftConfig
virtual void testRequestAircraftConfig(const swift::misc::aviation::CCallsign &callsign) override;
protected:
//! Constructor, with link to runtime
CContextNetwork(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime);
//! Register myself in DBus
CContextNetwork *registerWithDBus(swift::misc::CDBusServer *server);
//! Set the provider
void setSimulationEnvironmentProvider(swift::misc::simulation::ISimulationEnvironmentProvider *provider);
private:
swift::misc::network::CLoginMode m_currentMode = swift::misc::network::CLoginMode::Pilot; //!< current modeM
CAirspaceMonitor *m_airspace = nullptr;
fsd::CFSDClient *m_fsdClient = nullptr;
QTimer *m_requestAircraftDataTimer = nullptr; //!< general updates such as frequencies, see requestAircraftDataUpdates()
QTimer *m_requestAtisTimer = nullptr; //!< general updates such as ATIS
QTimer *m_staggeredMatchingTimer = nullptr; //!< staggered update
int m_simulatorConnected = 0; //!< how often a simulator has been connected
swift::misc::simulation::CSimulatorInfo m_lastConnectedSim; //!< last connected sim.
// Digest signals, only sending after some time
swift::misc::CDigestSignal m_dsAtcStationsOnlineChanged { this, &IContextNetwork::changedAtcStationsOnline, &IContextNetwork::changedAtcStationsOnlineDigest, 1000, 4 };
swift::misc::CDigestSignal m_dsAircraftsInRangeChanged { this, &IContextNetwork::changedAircraftInRange, &IContextNetwork::changedAircraftInRangeDigest, 1000, 4 };
QQueue<swift::misc::simulation::CSimulatedAircraft> m_readyForModelMatching; //!< ready for matching
//! Own aircraft from \sa CContextOwnAircraft
swift::misc::simulation::CSimulatedAircraft ownAircraft() const;
//! Check if a callsign is a valid partner callsign
bool isValidPartnerCallsign(const swift::misc::aviation::CCallsign &ownCallsign, const swift::misc::aviation::CCallsign &partnerCallsign);
//! Update METAR collection
void updateMetars(const swift::misc::weather::CMetarList &metars);
//! Check when a message was received, if the message has to be relayed, is a supervisor message ...
void onTextMessagesReceived(const swift::misc::network::CTextMessageList &messages);
//! Text message has been sent
void onTextMessageSent(const swift::misc::network::CTextMessage &message);
//! An ATIS has been received
void onChangedAtisReceived(const swift::misc::aviation::CCallsign &callsign);
//! Connection status changed
void onFsdConnectionStatusChanged(const swift::misc::network::CConnectionStatus &from, const swift::misc::network::CConnectionStatus &to);
//! Ready for matching
void onReadyForModelMatching(const swift::misc::simulation::CSimulatedAircraft &aircraft);
//! Emit ready for matching
void emitReadyForMatching();
//! Relay to partner callsign
void createRelayMessageToPartnerCallsign(const swift::misc::network::CTextMessage &textMessage, const swift::misc::aviation::CCallsign &partnerCallsign, swift::misc::network::CTextMessageList &relayedMessages);
//! Render restrictions have been changed, used with analyzer
//! \sa CAirspaceAnalyzer
//! \ingroup crosscontextfunction
void xCtxSimulatorRenderRestrictionsChanged(bool restricted, bool enabled, int maxAircraft, const swift::misc::physical_quantities::CLength &maxRenderedDistance);
//! Status of simulator changed
//! \ingroup crosscontextfunction
void xCtxSimulatorStatusChanged(int status);
//! Can FSD be used?
bool canUseFsd() const;
//! Can the airspace monitor be used be used?
bool canUseAirspaceMonitor() const;
};
} // ns
} // ns
#endif // guard