mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 08:45:36 +08:00
refs #602, emoved web service provider
* webservices now directly accessible via sGui * interface no longer needed * no init of provider (setProvider) needed anymore
This commit is contained in:
committed by
Mathew Sutcliffe
parent
a0cfa2e687
commit
79f95845b2
@@ -13,6 +13,7 @@
|
||||
#include "blackcore/webdataservices.h"
|
||||
#include "blackcore/vatsimbookingreader.h"
|
||||
#include "blackcore/vatsimdatafilereader.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/project.h"
|
||||
#include "blackmisc/testing.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
@@ -23,11 +24,11 @@
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Audio;
|
||||
using namespace BlackMisc::Aviation;
|
||||
using namespace BlackMisc::Simulation;
|
||||
using namespace BlackMisc::Geo;
|
||||
using namespace BlackMisc::Json;
|
||||
using namespace BlackMisc::Network;
|
||||
using namespace BlackMisc::PhysicalQuantities;
|
||||
using namespace BlackMisc::Simulation;
|
||||
using namespace BlackMisc::Weather;
|
||||
|
||||
namespace BlackCore
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "blackmisc/aviation/atcstationlist.h"
|
||||
#include "blackmisc/aviation/aircraftsituationlist.h"
|
||||
#include "blackmisc/weather/metarset.h"
|
||||
#include "blackmisc/network/webdataservicesprovider.h"
|
||||
#include "blackmisc/network/clientlist.h"
|
||||
#include "blackmisc/network/userlist.h"
|
||||
#include "blackmisc/aviation/flightplan.h"
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "blackmisc/dbusserver.h"
|
||||
#include "blackmisc/registermetadata.h"
|
||||
#include "blackmisc/network/networkutils.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/verify.h"
|
||||
#include <QStandardPaths>
|
||||
#include <QFile>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "cookiemanager.h"
|
||||
#include "webdataservices.h"
|
||||
#include "blackmisc/network/url.h"
|
||||
#include "blackmisc/network/entityflags.h"
|
||||
#include "blackmisc/logcategorylist.h"
|
||||
#include "blackmisc/filelogger.h"
|
||||
#include "blackmisc/slot.h"
|
||||
@@ -266,7 +267,7 @@ namespace BlackCore
|
||||
QNetworkAccessManager m_accessManager { this }; //!< single network access manager
|
||||
CCookieManager m_cookieManager; //!< single cookie manager for our access manager
|
||||
QString m_applicationName; //!< application name
|
||||
QReadWriteLock m_accessManagerLock; //!< lock to make accessmanager access threadsafe
|
||||
QReadWriteLock m_accessManagerLock; //!< lock to make access manager access threadsafe
|
||||
CCoreFacadeConfig m_coreFacadeConfig; //!< Core facade config if any
|
||||
CWebReaderFlags::WebReader m_webReader; //!< Readers used
|
||||
CWebReaderFlags::DbReaderHint m_dbReaderHint; //!< Load or used caching?
|
||||
|
||||
@@ -58,12 +58,7 @@ namespace BlackCore
|
||||
|
||||
// 3. data reader, start reading when setup is synced with xx delay
|
||||
Q_ASSERT_X(sApp->getWebDataServices(), Q_FUNC_INFO, "Missing web data services");
|
||||
this->m_webReaderSignalConnections.append(
|
||||
sApp->getWebDataServices()->connectDataReadSignal(
|
||||
this, // the object here must be the same as in the bind
|
||||
std::bind(&CContextNetwork::webServiceDataRead, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)
|
||||
)
|
||||
);
|
||||
connect(sApp->getWebDataServices(), &CWebDataServices::dataRead, this, &CContextNetwork::webServiceDataRead);
|
||||
|
||||
// 4. Airspace contents
|
||||
Q_ASSERT_X(this->getRuntime()->getCContextOwnAircraft(), Q_FUNC_INFO, "this and own aircraft context must be local");
|
||||
@@ -133,8 +128,6 @@ namespace BlackCore
|
||||
void CContextNetwork::gracefulShutdown()
|
||||
{
|
||||
this->disconnect(); // all signals
|
||||
this->disconnectReaderSignals(); // disconnect
|
||||
|
||||
if (this->isConnected()) { this->disconnectFromNetwork(); }
|
||||
if (this->m_airspace) { this->m_airspace->gracefulShutdown(); }
|
||||
}
|
||||
@@ -457,15 +450,6 @@ namespace BlackCore
|
||||
return this->getRuntime()->getCContextOwnAircraft()->getOwnAircraft();
|
||||
}
|
||||
|
||||
void CContextNetwork::disconnectReaderSignals()
|
||||
{
|
||||
for (QMetaObject::Connection c : m_webReaderSignalConnections)
|
||||
{
|
||||
QObject::disconnect(c);
|
||||
}
|
||||
m_webReaderSignalConnections.clear();
|
||||
}
|
||||
|
||||
CAtcStationList CContextNetwork::getAtcStationsOnline() const
|
||||
{
|
||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
|
||||
@@ -238,7 +238,6 @@ namespace BlackCore
|
||||
private:
|
||||
CAirspaceMonitor *m_airspace = nullptr;
|
||||
INetwork *m_network = nullptr;
|
||||
QList<QMetaObject::Connection> m_webReaderSignalConnections;
|
||||
INetwork::ConnectionStatus m_currentStatus = INetwork::Disconnected; //!< used to detect pending connections
|
||||
QTimer *m_networkDataUpdateTimer = nullptr; //!< general updates such as ATIS, frequencies, see requestDataUpdates()
|
||||
|
||||
@@ -250,9 +249,6 @@ namespace BlackCore
|
||||
//! Own aircraft from \sa CContextOwnAircraft
|
||||
const BlackMisc::Simulation::CSimulatedAircraft ownAircraft() const;
|
||||
|
||||
//! Disconnect all signals from swift DB readers
|
||||
void disconnectReaderSignals();
|
||||
|
||||
private slots:
|
||||
//! Update METAR collection
|
||||
void ps_updateMetars(const BlackMisc::Weather::CMetarSet &metars);
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackcore/databasereader.h"
|
||||
#include "blackcore/data/globalsetup.h"
|
||||
#include "blackmisc/network/webdataservicesprovider.h"
|
||||
#include "blackmisc/aviation/liverylist.h"
|
||||
#include "blackmisc/simulation/distributorlist.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "blackcore/vatsimbookingreader.h"
|
||||
#include "blackcore/vatsimdatafilereader.h"
|
||||
#include "blackcore/vatsimmetarreader.h"
|
||||
#include "data/globalsetup.h"
|
||||
#include "blackcore/data/globalsetup.h"
|
||||
#include "blackmisc/network/networkutils.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include "blackmisc/fileutils.h"
|
||||
@@ -46,68 +46,45 @@ namespace BlackCore
|
||||
this->setObjectName("CWebDataReader");
|
||||
this->initReaders(readerFlags);
|
||||
this->initWriters();
|
||||
this->readInBackground(CEntityFlags::AllEntities, 500);
|
||||
}
|
||||
|
||||
QList<QMetaObject::Connection> CWebDataServices::connectDataReadSignal(QObject *receiver, std::function<void(CEntityFlags::Entity, CEntityFlags::ReadState, int)> dataRead)
|
||||
{
|
||||
Q_ASSERT_X(receiver, Q_FUNC_INFO, "Missing receiver");
|
||||
|
||||
// bind does not allow to define connection type
|
||||
// so anything in its own thread will be sent with this thread affinity
|
||||
QList<QMetaObject::Connection> cl;
|
||||
|
||||
bool c = false;
|
||||
Q_UNUSED(c);
|
||||
if (m_readerFlags.testFlag(CWebReaderFlags::WebReaderFlag::IcaoDataReader))
|
||||
{
|
||||
Q_ASSERT_X(this->m_icaoDataReader, Q_FUNC_INFO, "Missing reader ICAO");
|
||||
QMetaObject::Connection con = connect(this->m_icaoDataReader, &CIcaoDataReader::dataRead, receiver, dataRead);
|
||||
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed ICAO");
|
||||
cl.append(con);
|
||||
c = connect(this->m_icaoDataReader, &CIcaoDataReader::dataRead, this, &CWebDataServices::dataRead);
|
||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed ICAO");
|
||||
}
|
||||
|
||||
if (m_readerFlags.testFlag(CWebReaderFlags::WebReaderFlag::ModelReader))
|
||||
{
|
||||
Q_ASSERT_X(this->m_modelDataReader, Q_FUNC_INFO, "Missing reader models");
|
||||
QMetaObject::Connection con = connect(this->m_modelDataReader, &CModelDataReader::dataRead, receiver, dataRead);
|
||||
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed models");
|
||||
cl.append(con);
|
||||
c = connect(this->m_modelDataReader, &CModelDataReader::dataRead, this, &CWebDataServices::dataRead);
|
||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed models");
|
||||
}
|
||||
|
||||
if (m_readerFlags.testFlag(CWebReaderFlags::WebReaderFlag::VatsimBookingReader))
|
||||
{
|
||||
Q_ASSERT_X(this->m_vatsimBookingReader, Q_FUNC_INFO, "Missing reader bookings");
|
||||
QMetaObject::Connection con = connect(this->m_vatsimBookingReader, &CVatsimBookingReader::dataRead, receiver, dataRead);
|
||||
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed bookings");
|
||||
cl.append(con);
|
||||
c = connect(this->m_vatsimBookingReader, &CVatsimBookingReader::dataRead, this, &CWebDataServices::dataRead);
|
||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed bookings");
|
||||
}
|
||||
|
||||
if (m_readerFlags.testFlag(CWebReaderFlags::WebReaderFlag::VatsimDataReader))
|
||||
{
|
||||
Q_ASSERT_X(this->m_vatsimDataFileReader, Q_FUNC_INFO, "Missing reader data file");
|
||||
QMetaObject::Connection con = connect(this->m_vatsimDataFileReader, &CVatsimDataFileReader::dataRead, receiver, dataRead);
|
||||
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed VATSIM data file");
|
||||
cl.append(con);
|
||||
c = connect(this->m_vatsimDataFileReader, &CVatsimDataFileReader::dataRead, this, &CWebDataServices::dataRead);
|
||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed VATSIM data file");
|
||||
}
|
||||
|
||||
if (m_readerFlags.testFlag(CWebReaderFlags::WebReaderFlag::VatsimMetarReader))
|
||||
{
|
||||
Q_ASSERT_X(this->m_vatsimMetarReader, Q_FUNC_INFO, "Missing reader metars");
|
||||
QMetaObject::Connection con = connect(this->m_vatsimMetarReader, &CVatsimMetarReader::dataRead, receiver, dataRead);
|
||||
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed VATSIM METAR");
|
||||
cl.append(con);
|
||||
c = connect(this->m_vatsimMetarReader, &CVatsimMetarReader::dataRead, this, &CWebDataServices::dataRead);
|
||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed VATSIM METAR");
|
||||
}
|
||||
return cl;
|
||||
}
|
||||
|
||||
QList<QMetaObject::Connection> CWebDataServices::connectDataPublishSignal(QObject *receiver, std::function<void (const CAircraftModelList &, const CAircraftModelList &, const CStatusMessageList &)> dataPublished)
|
||||
{
|
||||
Q_ASSERT_X(receiver, Q_FUNC_INFO, "Missing receiver");
|
||||
QList<QMetaObject::Connection> cl;
|
||||
if (!m_databaseWriter) { return cl; }
|
||||
QMetaObject::Connection con = connect(this->m_databaseWriter, &CDatabaseWriter::published, receiver, dataPublished);
|
||||
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed publishing signal");
|
||||
cl.push_back(con);
|
||||
return cl;
|
||||
this->readInBackground(CEntityFlags::AllEntities, 500);
|
||||
}
|
||||
|
||||
CServerList CWebDataServices::getVatsimFsdServers() const
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#include "blackmisc/aviation/aircrafticaocodelist.h"
|
||||
#include "blackmisc/network/serverlist.h"
|
||||
#include "blackmisc/network/voicecapabilities.h"
|
||||
#include "blackmisc/network/webdataservicesprovider.h"
|
||||
#include "blackmisc/network/entityflags.h"
|
||||
#include "blackmisc/simulation/distributorlist.h"
|
||||
#include "blackmisc/weather/metarset.h"
|
||||
@@ -44,15 +43,15 @@ namespace BlackCore
|
||||
* Encapsulates reading data from web sources
|
||||
*/
|
||||
class BLACKCORE_EXPORT CWebDataServices :
|
||||
public QObject,
|
||||
public BlackMisc::Network::IWebDataServicesProvider
|
||||
public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(BlackMisc::Network::IWebDataServicesProvider)
|
||||
|
||||
friend class CApplication;
|
||||
|
||||
public:
|
||||
//! Log categories
|
||||
static const BlackMisc::CLogCategoryList &getLogCategories();
|
||||
|
||||
//! Shutdown
|
||||
void gracefulShutdown();
|
||||
|
||||
@@ -68,85 +67,194 @@ namespace BlackCore
|
||||
//! Metar reader
|
||||
CVatsimMetarReader *getMetarReader() const { return m_vatsimMetarReader; }
|
||||
|
||||
//! DB writer class
|
||||
CDatabaseWriter *getDatabaseWriter() const { return m_databaseWriter; }
|
||||
|
||||
//! Reader flags
|
||||
CWebReaderFlags::WebReader getReaderFlags() const { return m_readerFlags; }
|
||||
|
||||
//! Reader flags
|
||||
CWebReaderFlags::DbReaderHint getDbHint() const { return m_dbHint; }
|
||||
|
||||
//! Log categories
|
||||
static const BlackMisc::CLogCategoryList &getLogCategories();
|
||||
//! FSD servers
|
||||
//! \threadsafe
|
||||
BlackMisc::Network::CServerList getVatsimFsdServers() const;
|
||||
|
||||
// ------------------------ provider functionality start ------------------------------
|
||||
//! Voice servers
|
||||
//! \threadsafe
|
||||
BlackMisc::Network::CServerList getVatsimVoiceServers() const;
|
||||
|
||||
//! \name Provider interface functions
|
||||
//! @{
|
||||
virtual QList<QMetaObject::Connection> connectDataReadSignal(
|
||||
QObject *receiver,
|
||||
std::function<void (BlackMisc::Network::CEntityFlags::Entity, BlackMisc::Network::CEntityFlags::ReadState, int)> dataRead) override;
|
||||
//! Users by callsign
|
||||
//! \threadsafe
|
||||
BlackMisc::Network::CUserList getUsersForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
|
||||
|
||||
virtual QList<QMetaObject::Connection> connectDataPublishSignal(
|
||||
QObject *receiver,
|
||||
std::function<void (const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::CStatusMessageList &)> dataPublished) override;
|
||||
//! ATC stations by callsign
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAtcStationList getAtcStationsForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
|
||||
|
||||
virtual BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead, const QDateTime &newerThan = QDateTime()) override;
|
||||
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
|
||||
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const override;
|
||||
virtual BlackMisc::Simulation::CDistributorList getDistributors() const override;
|
||||
virtual int getDistributorsCount() const override;
|
||||
virtual BlackMisc::Simulation::CDistributor smartDistributorSelector(const BlackMisc::Simulation::CDistributor &distributor) const override;
|
||||
virtual BlackMisc::Aviation::CLiveryList getLiveries() const override;
|
||||
virtual int getLiveriesCount() const override;
|
||||
virtual BlackMisc::Aviation::CLivery getLiveryForCombinedCode(const QString &combinedCode) const override;
|
||||
virtual BlackMisc::Aviation::CLivery getStdLiveryForAirlineCode(const BlackMisc::Aviation::CAirlineIcaoCode &icao) const override;
|
||||
virtual BlackMisc::Aviation::CLivery getLiveryForDbKey(int id) const override;
|
||||
virtual BlackMisc::Aviation::CLivery smartLiverySelector(const BlackMisc::Aviation::CLivery &livery) const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModelList getModels() const override;
|
||||
virtual int getModelsCount() const override;
|
||||
virtual QList<int> getModelDbKeys() const override;
|
||||
virtual QStringList getModelStrings() const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModelList getModelsForAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModel getModelForModelString(const QString &modelString) const override;
|
||||
virtual BlackMisc::Aviation::CAircraftIcaoCodeList getAircraftIcaoCodes() const override;
|
||||
virtual int getAircraftIcaoCodesCount() const override;
|
||||
virtual BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCodeForDesignator(const QString &designator) const override;
|
||||
virtual BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCodeForDbKey(int key) const override;
|
||||
virtual BlackMisc::Aviation::CAircraftIcaoCode smartAircraftIcaoSelector(const BlackMisc::Aviation::CAircraftIcaoCode &icao) const override;
|
||||
virtual BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const override;
|
||||
virtual int getAirlineIcaoCodesCount() const override;
|
||||
virtual BlackMisc::Aviation::CAirlineIcaoCode smartAirlineIcaoSelector(const BlackMisc::Aviation::CAirlineIcaoCode &icaoPattern) const override;
|
||||
virtual BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForDbKey(int key) const override;
|
||||
virtual BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodeForDesignator(const QString &designator) const override;
|
||||
virtual BlackMisc::CCountryList getCountries() const override;
|
||||
virtual int getCountriesCount() const override;
|
||||
virtual BlackMisc::CCountry getCountryForName(const QString &name) const override;
|
||||
virtual BlackMisc::CCountry getCountryForIsoCode(const QString &iso) const override;
|
||||
virtual BlackMisc::Weather::CMetarSet getMetars() const override;
|
||||
virtual BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &icao) const override;
|
||||
virtual int getMetarsCount() const override;
|
||||
virtual BlackMisc::Network::CUserList getUsersForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Network::CVoiceCapabilities getVoiceCapabilityForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual void updateWithVatsimDataFileData(BlackMisc::Simulation::CSimulatedAircraft &aircraftToBeUdpated) const override;
|
||||
virtual BlackMisc::CStatusMessageList asyncPublishModels(const BlackMisc::Simulation::CAircraftModelList &models) const override;
|
||||
virtual bool canConnectSwiftDb() const override;
|
||||
virtual bool writeDbDataToDisk(const QString &dir) const override;
|
||||
virtual bool readDbDataFromDisk(const QString &dir, bool inBackground) override;
|
||||
//! }@
|
||||
//! Voice capabilities for given callsign
|
||||
//! \threadsafe
|
||||
BlackMisc::Network::CVoiceCapabilities getVoiceCapabilityForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
|
||||
|
||||
// ------------------------ provider functionality end ----------------------------
|
||||
//! Update with web data
|
||||
//! \threadsafe
|
||||
void updateWithVatsimDataFileData(BlackMisc::Simulation::CSimulatedAircraft &aircraftToBeUdpated) const;
|
||||
|
||||
//! Distributors
|
||||
//! \threadsafe
|
||||
BlackMisc::Simulation::CDistributorList getDistributors() const;
|
||||
|
||||
//! Distributors count
|
||||
//! \threadsafe
|
||||
int getDistributorsCount() const;
|
||||
|
||||
//! Use distributor object to select the best complete distributor from DB
|
||||
//! \threadsafe
|
||||
BlackMisc::Simulation::CDistributor smartDistributorSelector(const BlackMisc::Simulation::CDistributor &distributor) const;
|
||||
|
||||
//! Liveries
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CLiveryList getLiveries() const;
|
||||
|
||||
//! Liveries count
|
||||
//! \threadsafe
|
||||
int getLiveriesCount() const;
|
||||
|
||||
//! Livery for its combined code
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CLivery getLiveryForCombinedCode(const QString &combinedCode) const;
|
||||
|
||||
//! Standard livery for airline code
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CLivery getStdLiveryForAirlineCode(const BlackMisc::Aviation::CAirlineIcaoCode &icao) const;
|
||||
|
||||
//! Livery for id
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CLivery getLiveryForDbKey(int id) const;
|
||||
|
||||
//! Use a livery as template and select the best complete livery from DB for it
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CLivery smartLiverySelector(const BlackMisc::Aviation::CLivery &livery) const;
|
||||
|
||||
//! Models
|
||||
//! \threadsafe
|
||||
BlackMisc::Simulation::CAircraftModelList getModels() const;
|
||||
|
||||
//! Models count
|
||||
//! \threadsafe
|
||||
int getModelsCount() const;
|
||||
|
||||
//! Model keys
|
||||
//! \threadsafe
|
||||
QList<int> getModelDbKeys() const;
|
||||
|
||||
//! Model strings
|
||||
//! \threadsafe
|
||||
QStringList getModelStrings() const;
|
||||
|
||||
//! Models for combined code and aircraft designator
|
||||
//! \threadsafe
|
||||
BlackMisc::Simulation::CAircraftModelList getModelsForAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const;
|
||||
|
||||
//! Model for key if any
|
||||
//! \threadsafe
|
||||
BlackMisc::Simulation::CAircraftModel getModelForModelString(const QString &modelKey) const;
|
||||
|
||||
//! Aircraft ICAO codes
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAircraftIcaoCodeList getAircraftIcaoCodes() const;
|
||||
|
||||
//! Aircraft ICAO codes count
|
||||
//! \threadsafe
|
||||
int getAircraftIcaoCodesCount() const;
|
||||
|
||||
//! ICAO code for designator
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCodeForDesignator(const QString &designator) const;
|
||||
|
||||
//! ICAO code for id
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcaoCodeForDbKey(int id) const;
|
||||
|
||||
//! Use an ICAO object to select the best complete ICAO object from DB for it
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAircraftIcaoCode smartAircraftIcaoSelector(const BlackMisc::Aviation::CAircraftIcaoCode &icao) const;
|
||||
|
||||
//! Airline ICAO codes
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const;
|
||||
|
||||
//! Airline ICAO codes count
|
||||
//! \threadsafe
|
||||
int getAirlineIcaoCodesCount() const;
|
||||
|
||||
//! ICAO code for designator
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodeForDesignator(const QString &designator) const;
|
||||
|
||||
//! ICAO code for id
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAirlineIcaoCode getAirlineIcaoCodeForDbKey(int id) const;
|
||||
|
||||
//! Smart airline selector
|
||||
//! \threadsafe
|
||||
BlackMisc::Aviation::CAirlineIcaoCode smartAirlineIcaoSelector(const BlackMisc::Aviation::CAirlineIcaoCode &code) const;
|
||||
|
||||
//! Countries
|
||||
//! \threadsafe
|
||||
BlackMisc::CCountryList getCountries() const;
|
||||
|
||||
//! Country count
|
||||
//! \threadsafe
|
||||
int getCountriesCount() const;
|
||||
|
||||
//! Country by ISO code (GB, US...)
|
||||
//! \threadsafe
|
||||
BlackMisc::CCountry getCountryForIsoCode(const QString &iso) const;
|
||||
|
||||
//! Country by name (France, China ..)
|
||||
//! \threadsafe
|
||||
BlackMisc::CCountry getCountryForName(const QString &name) const;
|
||||
|
||||
//! Get METARs
|
||||
//! \threadsafe
|
||||
BlackMisc::Weather::CMetarSet getMetars() const;
|
||||
|
||||
//! Get METAR for airport
|
||||
//! \threadsafe
|
||||
BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &icao) const;
|
||||
|
||||
//! Get METARs count
|
||||
//! \threadsafe
|
||||
int getMetarsCount() const;
|
||||
|
||||
//! Publish models to database
|
||||
BlackMisc::CStatusMessageList asyncPublishModels(const BlackMisc::Simulation::CAircraftModelList &models) const;
|
||||
|
||||
//! Trigger read of new data
|
||||
BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead, const QDateTime &dateTime = QDateTime());
|
||||
|
||||
//! Can connect to swift DB?
|
||||
bool canConnectSwiftDb() const;
|
||||
|
||||
//! Write data to disk (mainly for testing scenarios)
|
||||
bool writeDbDataToDisk(const QString &dir) const;
|
||||
|
||||
//! Load DB data from disk (mainly for testing scenarios)
|
||||
bool readDbDataFromDisk(const QString &dir, bool inBackground);
|
||||
|
||||
signals:
|
||||
//! Combined read signal
|
||||
void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
|
||||
|
||||
public slots:
|
||||
//! First read (allows to immediately read in background)
|
||||
void readInBackground(BlackMisc::Network::CEntityFlags::Entity entities = BlackMisc::Network::CEntityFlags::AllEntities, int delayMs = 0);
|
||||
|
||||
protected:
|
||||
//! Constructor
|
||||
CWebDataServices(CWebReaderFlags::WebReader readerFlags, CWebReaderFlags:: DbReaderHint hint, QObject *parent = nullptr);
|
||||
|
||||
// ---------------------------------------------
|
||||
// Consider to use the connect method of the provider to connect by entity
|
||||
// ---------------------------------------------
|
||||
public slots:
|
||||
//! First read (allows to immediately read in background)
|
||||
void readInBackground(BlackMisc::Network::CEntityFlags::Entity entities = BlackMisc::Network::CEntityFlags::AllEntities, int delayMs = 0);
|
||||
|
||||
private slots:
|
||||
//! ATC bookings received
|
||||
void ps_receivedBookings(const BlackMisc::Aviation::CAtcStationList &bookedStations);
|
||||
|
||||
Reference in New Issue
Block a user