mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
Ref T698, added remote aircraft context to network class
This commit is contained in:
committed by
Mat Sutcliffe
parent
ab83d55d7c
commit
821e7e73c9
@@ -67,7 +67,11 @@ namespace BlackCore
|
||||
CContextNetwork::registerHelp();
|
||||
|
||||
// 1. Init by "network driver"
|
||||
m_network = new CNetworkVatlib(nullptr, this->getRuntime()->getCContextOwnAircraft(), this);
|
||||
m_network = new CNetworkVatlib(
|
||||
this,
|
||||
this->getRuntime()->getCContextOwnAircraft(),
|
||||
this,
|
||||
this);
|
||||
connect(m_network, &INetwork::connectionStatusChanged, this, &CContextNetwork::onFsdConnectionStatusChanged);
|
||||
connect(m_network, &INetwork::kicked, this, &CContextNetwork::kicked);
|
||||
connect(m_network, &INetwork::textMessagesReceived, this, &CContextNetwork::textMessagesReceived);
|
||||
|
||||
@@ -7,13 +7,31 @@
|
||||
*/
|
||||
|
||||
#include "network.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include "blackmisc/range.h"
|
||||
#include "blackconfig/buildconfig.h"
|
||||
|
||||
#include <QStringBuilder>
|
||||
|
||||
using namespace BlackConfig;
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Network;
|
||||
using namespace BlackMisc::Simulation;
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
INetwork::INetwork(IClientProvider *clientProvider, IOwnAircraftProvider *ownAircraftProvider, IRemoteAircraftProvider *remoteAircraftProvider, QObject *parent) :
|
||||
QObject(parent),
|
||||
CClientAware(clientProvider),
|
||||
COwnAircraftAware(ownAircraftProvider),
|
||||
CRemoteAircraftAware(remoteAircraftProvider)
|
||||
{
|
||||
if (CBuildConfig::isLocalDeveloperDebugBuild())
|
||||
{
|
||||
CLogMessage("Enabled network statistics");
|
||||
m_statistics = true;
|
||||
}
|
||||
}
|
||||
int INetwork::increaseStatisticsValue(const QString &identifier, const QString &appendix)
|
||||
{
|
||||
if (identifier.isEmpty() || !m_statistics) { return -1; }
|
||||
@@ -22,6 +40,11 @@ namespace BlackCore
|
||||
return v;
|
||||
}
|
||||
|
||||
int INetwork::increaseStatisticsValue(const QString &identifier, int value)
|
||||
{
|
||||
return this->increaseStatisticsValue(identifier, QString::number(value));
|
||||
}
|
||||
|
||||
QString INetwork::getNetworkStatisticsAsText(bool reset, const QString &separator)
|
||||
{
|
||||
QMap<int, QString> transformed;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "blackcoreexport.h"
|
||||
#include "blackmisc/simulation/ownaircraftprovider.h"
|
||||
#include "blackmisc/simulation/remoteaircraftprovider.h"
|
||||
#include "blackmisc/simulation/simulationenvironmentprovider.h"
|
||||
#include "blackmisc/simulation/simulatorplugininfo.h"
|
||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||
@@ -62,7 +63,9 @@ namespace BlackCore
|
||||
public BlackMisc::Network::IEcosystemProvider, // provide info about used ecosystem
|
||||
public BlackMisc::Network::CClientAware, // network can set client information
|
||||
public BlackMisc::Simulation::COwnAircraftAware, // network vatlib consumes own aircraft data and sets ICAO/callsign data
|
||||
public BlackMisc::Simulation::CRemoteAircraftAware, // check if we really need to process network packets (e.g. parts)
|
||||
public BlackMisc::Simulation::CSimulationEnvironmentAware // allows to consume ground elevations
|
||||
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(BlackMisc::Network::IEcosystemProvider)
|
||||
@@ -70,12 +73,10 @@ namespace BlackCore
|
||||
protected:
|
||||
//! Constructor
|
||||
INetwork(
|
||||
BlackMisc::Network::IClientProvider *clientProvider,
|
||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||
QObject *parent = nullptr) :
|
||||
QObject(parent),
|
||||
BlackMisc::Network::CClientAware(clientProvider),
|
||||
BlackMisc::Simulation::COwnAircraftAware(ownAircraftProvider) {}
|
||||
BlackMisc::Network::IClientProvider *clientProvider,
|
||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||
BlackMisc::Simulation::IRemoteAircraftProvider *remoteAircraftProvider,
|
||||
QObject *parent = nullptr);
|
||||
|
||||
public:
|
||||
//! Destructor
|
||||
@@ -110,8 +111,10 @@ namespace BlackCore
|
||||
bool isStatisticsEnabled() const { return m_statistics; }
|
||||
//! @}
|
||||
|
||||
//! Increase the statistics value for given identifier
|
||||
//! Increase the statistics value for given identifier @{
|
||||
int increaseStatisticsValue(const QString &identifier, const QString &appendix = {});
|
||||
int increaseStatisticsValue(const QString &identifier, int value);
|
||||
//! @}
|
||||
|
||||
//! Clear the statistics
|
||||
void clearStatistics() { m_callStatistics.clear(); }
|
||||
|
||||
@@ -83,9 +83,11 @@ namespace BlackCore
|
||||
return cats;
|
||||
}
|
||||
|
||||
CNetworkVatlib::CNetworkVatlib(IClientProvider *clientProvider,
|
||||
IOwnAircraftProvider *ownAircraftProvider, QObject *parent)
|
||||
: INetwork(clientProvider, ownAircraftProvider, parent),
|
||||
CNetworkVatlib::CNetworkVatlib(IClientProvider *clientProvider,
|
||||
IOwnAircraftProvider *ownAircraftProvider,
|
||||
IRemoteAircraftProvider *remoteAircraftProvider,
|
||||
QObject *parent)
|
||||
: INetwork(clientProvider, ownAircraftProvider, remoteAircraftProvider, parent),
|
||||
m_loginMode(LoginNormal),
|
||||
m_status(vatStatusDisconnected),
|
||||
m_tokenBucket(10, CTime(5, CTimeUnit::s()), 1)
|
||||
|
||||
@@ -64,10 +64,10 @@ namespace BlackCore
|
||||
static const BlackMisc::CLogCategoryList &getLogCategories();
|
||||
|
||||
//! Constructor
|
||||
CNetworkVatlib(
|
||||
BlackMisc::Network::IClientProvider *clientProvider,
|
||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||
QObject *parent = nullptr);
|
||||
CNetworkVatlib(BlackMisc::Network::IClientProvider *clientProvider,
|
||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||
BlackMisc::Simulation::IRemoteAircraftProvider *remoteAircraftProvider,
|
||||
QObject *parent);
|
||||
|
||||
//! Destructor
|
||||
virtual ~CNetworkVatlib() override;
|
||||
@@ -313,4 +313,5 @@ namespace BlackCore
|
||||
};
|
||||
} //namespace
|
||||
} //namespace
|
||||
|
||||
#endif // guard
|
||||
|
||||
@@ -17,6 +17,12 @@ namespace BlackMisc
|
||||
{
|
||||
namespace Simulation
|
||||
{
|
||||
CRemoteAircraftProviderDummy *CRemoteAircraftProviderDummy::instance()
|
||||
{
|
||||
static CRemoteAircraftProviderDummy *dummy = new CRemoteAircraftProviderDummy();
|
||||
return dummy;
|
||||
}
|
||||
|
||||
CRemoteAircraftProviderDummy::CRemoteAircraftProviderDummy(QObject *parent) : CRemoteAircraftProvider(parent)
|
||||
{ }
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@ namespace BlackMisc
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
//! Singleton
|
||||
static CRemoteAircraftProviderDummy *instance();
|
||||
|
||||
//! Constructor
|
||||
CRemoteAircraftProviderDummy(QObject *parent = nullptr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user