From efb1ac46f2305afc3e4e16e97c0a4499fbfeb88e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 28 Dec 2018 13:44:35 +0100 Subject: [PATCH] Ref T489, added "parsing" state for entity read states --- src/blackcore/db/airportdatareader.cpp | 4 +++- src/blackcore/db/icaodatareader.cpp | 5 ++++- src/blackcore/db/infodatareader.cpp | 2 +- src/blackcore/db/modeldatareader.cpp | 5 ++++- src/blackcore/webdataservices.cpp | 2 +- src/blackgui/components/dbloaddatadialog.cpp | 2 +- .../components/infobarwebreadersstatuscomponent.cpp | 3 ++- src/blackmisc/network/entityflags.cpp | 8 +++++--- src/blackmisc/network/entityflags.h | 3 ++- 9 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/blackcore/db/airportdatareader.cpp b/src/blackcore/db/airportdatareader.cpp index 1489a8b18..1a6b732af 100644 --- a/src/blackcore/db/airportdatareader.cpp +++ b/src/blackcore/db/airportdatareader.cpp @@ -198,6 +198,8 @@ namespace BlackCore return; } + // parsing + emit this->dataRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadParsing, 0); CAirportList airports; CAirportList inconsistent; if (res.isRestricted()) @@ -255,7 +257,7 @@ namespace BlackCore { url.appendQuery(queryLatestTimestamp(newerThan)); this->getFromNetworkAndLog(url, { this, &CAirportDataReader::parseAirportData }); - emit dataRead(CEntityFlags::AirportEntity, CEntityFlags::StartRead, 0); + emit dataRead(CEntityFlags::AirportEntity, CEntityFlags::ReadStarted, 0); } else { diff --git a/src/blackcore/db/icaodatareader.cpp b/src/blackcore/db/icaodatareader.cpp index 9948f8f5a..a9c942872 100644 --- a/src/blackcore/db/icaodatareader.cpp +++ b/src/blackcore/db/icaodatareader.cpp @@ -219,7 +219,7 @@ namespace BlackCore if (entitiesTriggered != CEntityFlags::NoEntity) { - emit this->dataRead(entitiesTriggered, CEntityFlags::StartRead, 0); + emit this->dataRead(entitiesTriggered, CEntityFlags::ReadStarted, 0); } } @@ -269,6 +269,7 @@ namespace BlackCore return; } + emit this->dataRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadParsing, 0); CAircraftIcaoCodeList codes; CAircraftIcaoCodeList inconsistent; if (res.isRestricted()) @@ -323,6 +324,7 @@ namespace BlackCore return; } + emit this->dataRead(CEntityFlags::AirlineIcaoEntity, CEntityFlags::ReadParsing, 0); CAirlineIcaoCodeList codes; CAirlineIcaoCodeList inconsistent; if (res.isRestricted()) @@ -375,6 +377,7 @@ namespace BlackCore return; } + emit this->dataRead(CEntityFlags::CountryEntity, CEntityFlags::ReadParsing, 0); CCountryList countries; if (res.isRestricted()) { diff --git a/src/blackcore/db/infodatareader.cpp b/src/blackcore/db/infodatareader.cpp index 1d90cdbe2..e989abc59 100644 --- a/src/blackcore/db/infodatareader.cpp +++ b/src/blackcore/db/infodatareader.cpp @@ -152,7 +152,7 @@ namespace BlackCore if (!url.isEmpty()) { this->getFromNetworkAndLog(url, { this, &CInfoDataReader::parseInfoObjectsData}); - emit this->dataRead(this->getEntityForMode(), CEntityFlags::StartRead, 0); + emit this->dataRead(this->getEntityForMode(), CEntityFlags::ReadStarted, 0); } else { diff --git a/src/blackcore/db/modeldatareader.cpp b/src/blackcore/db/modeldatareader.cpp index 11abf0c5f..694930bde 100644 --- a/src/blackcore/db/modeldatareader.cpp +++ b/src/blackcore/db/modeldatareader.cpp @@ -238,7 +238,7 @@ namespace BlackCore if (triggeredRead != CEntityFlags::NoEntity) { - emit dataRead(triggeredRead, CEntityFlags::StartRead, 0); + emit dataRead(triggeredRead, CEntityFlags::ReadStarted, 0); } } @@ -288,6 +288,7 @@ namespace BlackCore } // get all or incremental set of distributor + emit this->dataRead(CEntityFlags::LiveryEntity, CEntityFlags::ReadParsing, 0); CLiveryList liveries; if (res.isRestricted()) { @@ -335,6 +336,7 @@ namespace BlackCore } // get all or incremental set of distributors + emit this->dataRead(CEntityFlags::DistributorEntity, CEntityFlags::ReadParsing, 0); CDistributorList distributors; if (res.isRestricted()) { @@ -383,6 +385,7 @@ namespace BlackCore } // get all or incremental set of models + emit this->dataRead(CEntityFlags::ModelEntity, CEntityFlags::ReadParsing, 0); CAircraftModelList models; if (res.isRestricted()) { diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index a959a55cc..d26e21d95 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -1300,7 +1300,7 @@ namespace BlackCore { static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::webservice()})); - if (state == CEntityFlags::StartRead) { return; } // just started + if (state == CEntityFlags::ReadStarted) { return; } // just started if (CEntityFlags::isWarningOrAbove(state)) { const CStatusMessage::StatusSeverity severity = CEntityFlags::flagToSeverity(state); diff --git a/src/blackgui/components/dbloaddatadialog.cpp b/src/blackgui/components/dbloaddatadialog.cpp index 39ff08c83..44dc7ebae 100644 --- a/src/blackgui/components/dbloaddatadialog.cpp +++ b/src/blackgui/components/dbloaddatadialog.cpp @@ -101,7 +101,7 @@ namespace BlackGui void CDbLoadDataDialog::onDataRead(CEntityFlags::Entity entity, CEntityFlags::ReadState state, int number) { if (m_pendingEntities == CEntityFlags::NoEntity) { return; } // no triggered from here - if (state == CEntityFlags::StartRead) { return; } + if (state == CEntityFlags::ReadStarted) { return; } if (!m_pendingEntities.testFlag(CEntityFlags::entityToEntityFlag(entity))) { return; } m_pendingEntities &= ~entity; diff --git a/src/blackgui/components/infobarwebreadersstatuscomponent.cpp b/src/blackgui/components/infobarwebreadersstatuscomponent.cpp index bea6f566e..73de94847 100644 --- a/src/blackgui/components/infobarwebreadersstatuscomponent.cpp +++ b/src/blackgui/components/infobarwebreadersstatuscomponent.cpp @@ -135,7 +135,8 @@ namespace BlackGui led->setOn(false); led->blink(resetTimeMs); // blink here (temp. "on"), since read from cache results in immediate ReadFinished break; - case CEntityFlags::StartRead: + case CEntityFlags::ReadStarted: + case CEntityFlags::ReadParsing: led->setOn(true); break; case CEntityFlags::ReadFailed: diff --git a/src/blackmisc/network/entityflags.cpp b/src/blackmisc/network/entityflags.cpp index fb0f78d41..06e50f3be 100644 --- a/src/blackmisc/network/entityflags.cpp +++ b/src/blackmisc/network/entityflags.cpp @@ -83,7 +83,7 @@ namespace BlackMisc return state == ReadFinished || state == ReadFinishedRestricted; } - int CEntityFlags::numberOfEntities(BlackMisc::Network::CEntityFlags::Entity entities) + int CEntityFlags::numberOfEntities(CEntityFlags::Entity entities) { const int c = static_cast(std::bitset<(sizeof(entities) * 8)>(entities).count()); return c; @@ -95,9 +95,10 @@ namespace BlackMisc { case ReadFinished: return "finished"; case ReadFinishedRestricted: return "finished (restricted)"; + case ReadParsing: return "parsing"; case ReadFailed: return "failed"; case ReadSkipped: return "skipped"; - case StartRead: return "read started"; + case ReadStarted: return "read started"; default: BLACK_VERIFY_X(false, Q_FUNC_INFO, "wrong flags"); return "wrong flags"; @@ -110,7 +111,8 @@ namespace BlackMisc { case ReadFinished: case ReadFinishedRestricted: - case StartRead: return CStatusMessage::SeverityInfo; + case ReadParsing: + case ReadStarted: return CStatusMessage::SeverityInfo; case ReadSkipped: return CStatusMessage::SeverityWarning; case ReadFailed: return CStatusMessage::SeverityError; default: diff --git a/src/blackmisc/network/entityflags.h b/src/blackmisc/network/entityflags.h index 6682d88a4..ef7b9e17b 100644 --- a/src/blackmisc/network/entityflags.h +++ b/src/blackmisc/network/entityflags.h @@ -63,7 +63,8 @@ namespace BlackMisc //! State of operation enum ReadState { - StartRead, //!< reading has been started + ReadStarted, //!< reading has been started + ReadParsing, //!< parsing data ReadFinished, //!< reading done ReadFinishedRestricted, //!< finished a timestamp restricted read ReadFailed, //!< reading failed