From 8ad7c1e3c7da0c5aa7d714c5fa0367f2607211f5 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 23 Apr 2017 04:35:53 +0200 Subject: [PATCH] Fixed issue with still using header instead of info object data plus some utility functionality --- src/blackcore/db/airportdatareader.cpp | 2 +- src/blackcore/db/databasereader.cpp | 4 ++-- src/blackcore/webdataservices.cpp | 2 +- src/blackgui/components/dbloadoverviewcomponent.cpp | 10 ++++------ src/blackgui/components/dbloadoverviewcomponent.h | 2 +- src/blackmisc/network/entityflags.cpp | 5 +++++ src/blackmisc/network/entityflags.h | 3 +++ 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/blackcore/db/airportdatareader.cpp b/src/blackcore/db/airportdatareader.cpp index 417b034c9..adfc694e9 100644 --- a/src/blackcore/db/airportdatareader.cpp +++ b/src/blackcore/db/airportdatareader.cpp @@ -44,7 +44,7 @@ namespace BlackCore if (dir.isEmpty() || whatToRead == CEntityFlags::NoEntity) { return false; } QTimer::singleShot(0, this, [this, dir, whatToRead]() { - CStatusMessageList msgs = this->readFromJsonFiles(dir, whatToRead); + const CStatusMessageList msgs = this->readFromJsonFiles(dir, whatToRead); if (msgs.isFailure()) { CLogMessage::preformatted(msgs); diff --git a/src/blackcore/db/databasereader.cpp b/src/blackcore/db/databasereader.cpp index 9e6409d51..b5a855e63 100644 --- a/src/blackcore/db/databasereader.cpp +++ b/src/blackcore/db/databasereader.cpp @@ -140,7 +140,7 @@ namespace BlackCore if (entities == CEntityFlags::NoEntity) { return CEntityFlags::NoEntity; } if (checkCacheTsUpfront) { - CEntityFlags::Entity newerHeaderEntities = this->getEntitesWithNewerHeaderTimestamp(entities); + CEntityFlags::Entity newerHeaderEntities = this->getEntitesWithNewerSharedInfoObject(entities); if (newerHeaderEntities != entities) { const CEntityFlags::Entity validInCacheEntities = (entities ^ newerHeaderEntities) & entities; @@ -389,7 +389,7 @@ namespace BlackCore const QDateTime cacheTs(this->getCacheTimestamp(entity)); if (!cacheTs.isValid()) { return true; } // we have no cache ts - const QDateTime sharedInfoTimestamp(this->getLatestSharedFileHeaderTimestamp(entity)); + const QDateTime sharedInfoTimestamp(this->getLatestEntityTimestampFromSharedInfoObjects(entity)); if (!sharedInfoTimestamp.isValid()) { return false; } return sharedInfoTimestamp > cacheTs; } diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index 8976dca10..d09fa7d8a 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -320,7 +320,7 @@ namespace BlackCore CEntityFlags::Entity CWebDataServices::triggerLoadingDirectlyFromSharedFiles(CEntityFlags::Entity whatToRead, bool checkCacheTsUpfront) { CEntityFlags::Entity triggeredRead = CEntityFlags::NoEntity; - this->triggerReadOfSharedInfoObjects(); // trigger reload of headers + this->triggerReadOfSharedInfoObjects(); // trigger reload of info objects (for shared) if (m_icaoDataReader) { diff --git a/src/blackgui/components/dbloadoverviewcomponent.cpp b/src/blackgui/components/dbloadoverviewcomponent.cpp index fccaf36b4..1465785c9 100644 --- a/src/blackgui/components/dbloadoverviewcomponent.cpp +++ b/src/blackgui/components/dbloadoverviewcomponent.cpp @@ -311,12 +311,10 @@ namespace BlackGui void CDbLoadOverviewComponent::ps_dataLoaded(CEntityFlags::Entity entities, CEntityFlags::ReadState state, int number) { Q_UNUSED(number); - if (!entities.testFlag(CEntityFlags::SharedInfoObjectEntity) && !entities.testFlag(CEntityFlags::DbInfoObjectEntity) && !CEntityFlags::anySwiftDbEntity(entities)) { return; } - if (state == CEntityFlags::ReadFinished || state == CEntityFlags::ReadFinishedRestricted) - { - this->m_loadInProgress = false; - emit this->ps_triggerDigestGuiUpdate(); - } + if (!CEntityFlags::isFinishedReadState(state)) return; + if (!entities.testFlag(CEntityFlags::SharedInfoObjectEntity) && entities.testFlag(CEntityFlags::DbInfoObjectEntity) && !CEntityFlags::anySwiftDbEntity(entities)) { return; } + this->m_loadInProgress = false; + emit this->ps_triggerDigestGuiUpdate(); } void CDbLoadOverviewComponent::ps_loadInfoObjects() diff --git a/src/blackgui/components/dbloadoverviewcomponent.h b/src/blackgui/components/dbloadoverviewcomponent.h index 1cf61abfd..aa5467215 100644 --- a/src/blackgui/components/dbloadoverviewcomponent.h +++ b/src/blackgui/components/dbloadoverviewcomponent.h @@ -108,7 +108,7 @@ namespace BlackGui //! Refresh directly from DB void ps_refreshDbPressed(); - //! Refresh directly from DB + //! Refresh directly from shared files void ps_refreshSharedPressed(); //! Init the value panel diff --git a/src/blackmisc/network/entityflags.cpp b/src/blackmisc/network/entityflags.cpp index 2c5f908ca..68f7231ac 100644 --- a/src/blackmisc/network/entityflags.cpp +++ b/src/blackmisc/network/entityflags.cpp @@ -68,6 +68,11 @@ namespace BlackMisc return numberOfEntities(flag) == 1; } + bool CEntityFlags::isFinishedReadState(CEntityFlags::ReadState state) + { + return state == ReadFinished || state == ReadFinishedRestricted; + } + int CEntityFlags::numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag) { const int c = static_cast(std::bitset<(sizeof(flag) * 8)>(flag).count()); diff --git a/src/blackmisc/network/entityflags.h b/src/blackmisc/network/entityflags.h index 9e0d15483..c5937d091 100644 --- a/src/blackmisc/network/entityflags.h +++ b/src/blackmisc/network/entityflags.h @@ -76,6 +76,9 @@ namespace BlackMisc //! Representing single entity? static bool isSingleEntity(BlackMisc::Network::CEntityFlags::Entity flag); + //! Any finished state + static bool isFinishedReadState(ReadState state); + //! Represented number of entities static int numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag);