diff --git a/src/blackcore/context_network.h b/src/blackcore/context_network.h index 8167a22d3..f73a997bf 100644 --- a/src/blackcore/context_network.h +++ b/src/blackcore/context_network.h @@ -20,7 +20,7 @@ #include "blackmisc/simulation/simulatedaircraftlist.h" #include "blackmisc/statusmessage.h" #include "blackmisc/statusmessagelist.h" -#include "blackmisc/network/dbflags.h" +#include "blackmisc/network/entityflags.h" #include "blackmisc/network/textmessagelist.h" #include "blackmisc/network/userlist.h" #include "blackmisc/network/clientlist.h" @@ -135,17 +135,9 @@ namespace BlackCore // --------------------------- data readers ------------------------------- - //! Data file read - void vatsimDataFileRead(int lines); - - //! Bookings read - void vatsimBookingsRead(int number); - - //! Metar read - void vatsimMetarsRead(int number); - - //! swift DB data read - void swiftDbDataRead(BlackMisc::Network::CDbFlags::Entity entity, BlackMisc::Network::CDbFlags::ReadState, int number); + //! Web serice data read + // void webServiceDataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number); + void webServiceDataRead(int entity, int state, int number); public slots: //! Reload bookings from booking service @@ -166,6 +158,9 @@ namespace BlackCore //! Aircraft count virtual int getAircraftInRangeCount() const = 0; + //! Get METAR, if not available request it (code such as EDDF, KLAX) + virtual BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const = 0; + //! Online station for callsign virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0; @@ -229,9 +224,6 @@ namespace BlackCore //! Command line was entered virtual bool parseCommandLine(const QString &commandLine, const BlackMisc::CIdentifier &originator) = 0; - //! Get METAR, if not available request it (code such as EDDF, KLAX) - virtual BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) = 0; - //! Use the selected COM1/2 frequencies, and get the corresponding voice room for it virtual BlackMisc::Audio::CVoiceRoomList getSelectedVoiceRooms() const = 0; diff --git a/src/blackcore/context_network_empty.h b/src/blackcore/context_network_empty.h index 30c8d8e0e..a219438b9 100644 --- a/src/blackcore/context_network_empty.h +++ b/src/blackcore/context_network_empty.h @@ -134,7 +134,7 @@ namespace BlackCore } //! \copydoc IContextNetwork::getMetar - BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) override + BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const override { Q_UNUSED(airportIcaoCode); logEmptyContextWarning(Q_FUNC_INFO); diff --git a/src/blackcore/context_network_impl.cpp b/src/blackcore/context_network_impl.cpp index 673e05527..11ea6a0c2 100644 --- a/src/blackcore/context_network_impl.cpp +++ b/src/blackcore/context_network_impl.cpp @@ -59,15 +59,10 @@ namespace BlackCore // 3. data reader this->m_webDataReader = new CWebDataServices(CWebReaderFlags::AllReaders, this); - this->m_webReaderSignalConnections = this->m_webDataReader->connectVatsimDataSignals( - this, // the object here must be the same as in the bind - std::bind(&CContextNetwork::vatsimBookingsRead, this, std::placeholders::_1), - std::bind(&CContextNetwork::vatsimDataFileRead, this, std::placeholders::_1), - std::bind(&CContextNetwork::vatsimMetarsRead, this, std::placeholders::_1)); this->m_webReaderSignalConnections.append( - this->m_webDataReader->connectSwiftDatabaseSignals( + this->m_webDataReader->connectDataReadSignal( this, // the object here must be the same as in the bind - std::bind(&CContextNetwork::swiftDbDataRead, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3) + std::bind(&CContextNetwork::webServiceDataRead, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3) ) ); this->m_webDataReader->readAllInBackground(1000); @@ -639,10 +634,10 @@ namespace BlackCore this->m_airspace->testAddAircraftParts(callsign, parts, incremental); } - CMetar CContextNetwork::getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) + CMetar CContextNetwork::getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const { if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << airportIcaoCode; } - return m_airspace->getMetar(airportIcaoCode); + return m_airspace->getMetarForAirport(airportIcaoCode); } CAtcStationList CContextNetwork::getSelectedAtcStations() const diff --git a/src/blackcore/context_network_impl.h b/src/blackcore/context_network_impl.h index 3f7e8be5b..18bce60e3 100644 --- a/src/blackcore/context_network_impl.h +++ b/src/blackcore/context_network_impl.h @@ -173,8 +173,8 @@ namespace BlackCore //! \copydoc IContextNetwork::loadFlightPlanFromNetwork() virtual BlackMisc::Aviation::CFlightPlan loadFlightPlanFromNetwork(const BlackMisc::Aviation::CCallsign &callsign) const override; - //! \copydoc IContextNetwork::getMetar - BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) override; + //! \copydoc IContextNetwork::getMetarForAirport + BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const override; //! \copydoc IContextNetwork::getSelectedVoiceRooms() virtual BlackMisc::Audio::CVoiceRoomList getSelectedVoiceRooms() const override; @@ -238,12 +238,12 @@ namespace BlackCore CContextNetwork *registerWithDBus(CDBusServer *server); private: - CAirspaceMonitor *m_airspace = nullptr; - INetwork *m_network = nullptr; - CWebDataServices *m_webDataReader = nullptr; //!< web service readers + CAirspaceMonitor *m_airspace = nullptr; + INetwork *m_network = nullptr; + CWebDataServices *m_webDataReader = nullptr; //!< web service readers QList m_webReaderSignalConnections; - INetwork::ConnectionStatus m_currentStatus = INetwork::Disconnected; //!< used to detect pending connections - QTimer *m_dataUpdateTimer = nullptr; //!< general updates such as ATIS, frequencies, see requestDataUpdates() + INetwork::ConnectionStatus m_currentStatus = INetwork::Disconnected; //!< used to detect pending connections + QTimer *m_dataUpdateTimer = nullptr; //!< general updates such as ATIS, frequencies, see requestDataUpdates() // Digest signals, only sending after some time BlackMisc::CDigestSignal m_dsAtcStationsBookedChanged { this, &IContextNetwork::changedAtcStationsBooked, &IContextNetwork::changedAtcStationsBookedDigest, 750, 2 }; diff --git a/src/blackcore/context_network_proxy.cpp b/src/blackcore/context_network_proxy.cpp index 58b667f74..f26917dcb 100644 --- a/src/blackcore/context_network_proxy.cpp +++ b/src/blackcore/context_network_proxy.cpp @@ -69,17 +69,11 @@ namespace BlackCore s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), "textMessageSent", this, SIGNAL(textMessageSent(BlackMisc::Network::CTextMessage))); Q_ASSERT(s); +// s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), +// "webServiceDataRead", this, SIGNAL(webServiceDataRead(BlackMisc::Network::CEntityFlags::Entity, BlackMisc::Network::CEntityFlags::ReadState, int))); s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), - "vatsimDataFileRead", this, SIGNAL(vatsimDataFileRead(int))); - Q_ASSERT(s); - s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), - "vatsimBookingsRead", this, SIGNAL(vatsimBookingsRead(int))); - Q_ASSERT(s); - s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), - "vatsimMetarsRead", this, SIGNAL(vatsimMetarsRead(int))); - Q_ASSERT(s); - s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), - "changedRemoteAircraftModel", this, SIGNAL(changedRemoteAircraftModel(BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::CIdentifier))); + "webServiceDataRead", this, SIGNAL(webServiceDataRead(int, int, int))); + Q_ASSERT(s); s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(), "changedRemoteAircraftEnabled", this, SIGNAL(changedRemoteAircraftEnabled(BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::CIdentifier))); @@ -271,9 +265,9 @@ namespace BlackCore return this->m_dBusInterface->callDBusRet(QLatin1Literal("loadFlightPlanFromNetwork"), callsign); } - CMetar CContextNetworkProxy::getMetar(const CAirportIcaoCode &airportIcaoCode) + CMetar CContextNetworkProxy::getMetarForAirport(const CAirportIcaoCode &airportIcaoCode) const { - return this->m_dBusInterface->callDBusRet(QLatin1Literal("getMetar"), airportIcaoCode); + return this->m_dBusInterface->callDBusRet(QLatin1Literal("getMetarForAirport"), airportIcaoCode); } } // namespace diff --git a/src/blackcore/context_network_proxy.h b/src/blackcore/context_network_proxy.h index 5963d5405..e746c59c8 100644 --- a/src/blackcore/context_network_proxy.h +++ b/src/blackcore/context_network_proxy.h @@ -99,8 +99,8 @@ namespace BlackCore //! \copydoc IContextNetwork::loadFlightPlanFromNetwork() virtual BlackMisc::Aviation::CFlightPlan loadFlightPlanFromNetwork(const BlackMisc::Aviation::CCallsign &callsign) const override; - //! \copydoc IContextNetwork::getMetar - BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) override; + //! \copydoc IContextNetwork::getMetarForAirport + BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const override; //! \copydoc IContextNetwork::getSelectedVoiceRooms() virtual BlackMisc::Audio::CVoiceRoomList getSelectedVoiceRooms() const override; diff --git a/src/blackgui/components/atcstationcomponent.cpp b/src/blackgui/components/atcstationcomponent.cpp index 4784fa4f1..46f930b37 100644 --- a/src/blackgui/components/atcstationcomponent.cpp +++ b/src/blackgui/components/atcstationcomponent.cpp @@ -150,7 +150,7 @@ namespace BlackGui QString icao = airportIcaoCode.isEmpty() ? this->ui->le_AtcStationsOnlineMetar->text().trimmed().toUpper() : airportIcaoCode.trimmed().toUpper(); this->ui->le_AtcStationsOnlineMetar->setText(icao); if (icao.length() != 4) { return; } - CMetar metar = this->getIContextNetwork()->getMetar(icao); + CMetar metar(this->getIContextNetwork()->getMetarForAirport(icao)); if (metar == CMetar()) { this->ui->te_AtcStationsOnlineInfo->clear();