Fixed issue with still using header instead of info object data

plus some utility functionality
This commit is contained in:
Klaus Basan
2017-04-23 04:35:53 +02:00
committed by Mathew Sutcliffe
parent b444361c7c
commit 8ad7c1e3c7
7 changed files with 17 additions and 11 deletions

View File

@@ -44,7 +44,7 @@ namespace BlackCore
if (dir.isEmpty() || whatToRead == CEntityFlags::NoEntity) { return false; } if (dir.isEmpty() || whatToRead == CEntityFlags::NoEntity) { return false; }
QTimer::singleShot(0, this, [this, dir, whatToRead]() QTimer::singleShot(0, this, [this, dir, whatToRead]()
{ {
CStatusMessageList msgs = this->readFromJsonFiles(dir, whatToRead); const CStatusMessageList msgs = this->readFromJsonFiles(dir, whatToRead);
if (msgs.isFailure()) if (msgs.isFailure())
{ {
CLogMessage::preformatted(msgs); CLogMessage::preformatted(msgs);

View File

@@ -140,7 +140,7 @@ namespace BlackCore
if (entities == CEntityFlags::NoEntity) { return CEntityFlags::NoEntity; } if (entities == CEntityFlags::NoEntity) { return CEntityFlags::NoEntity; }
if (checkCacheTsUpfront) if (checkCacheTsUpfront)
{ {
CEntityFlags::Entity newerHeaderEntities = this->getEntitesWithNewerHeaderTimestamp(entities); CEntityFlags::Entity newerHeaderEntities = this->getEntitesWithNewerSharedInfoObject(entities);
if (newerHeaderEntities != entities) if (newerHeaderEntities != entities)
{ {
const CEntityFlags::Entity validInCacheEntities = (entities ^ newerHeaderEntities) & entities; const CEntityFlags::Entity validInCacheEntities = (entities ^ newerHeaderEntities) & entities;
@@ -389,7 +389,7 @@ namespace BlackCore
const QDateTime cacheTs(this->getCacheTimestamp(entity)); const QDateTime cacheTs(this->getCacheTimestamp(entity));
if (!cacheTs.isValid()) { return true; } // we have no cache ts 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; } if (!sharedInfoTimestamp.isValid()) { return false; }
return sharedInfoTimestamp > cacheTs; return sharedInfoTimestamp > cacheTs;
} }

View File

@@ -320,7 +320,7 @@ namespace BlackCore
CEntityFlags::Entity CWebDataServices::triggerLoadingDirectlyFromSharedFiles(CEntityFlags::Entity whatToRead, bool checkCacheTsUpfront) CEntityFlags::Entity CWebDataServices::triggerLoadingDirectlyFromSharedFiles(CEntityFlags::Entity whatToRead, bool checkCacheTsUpfront)
{ {
CEntityFlags::Entity triggeredRead = CEntityFlags::NoEntity; CEntityFlags::Entity triggeredRead = CEntityFlags::NoEntity;
this->triggerReadOfSharedInfoObjects(); // trigger reload of headers this->triggerReadOfSharedInfoObjects(); // trigger reload of info objects (for shared)
if (m_icaoDataReader) if (m_icaoDataReader)
{ {

View File

@@ -311,12 +311,10 @@ namespace BlackGui
void CDbLoadOverviewComponent::ps_dataLoaded(CEntityFlags::Entity entities, CEntityFlags::ReadState state, int number) void CDbLoadOverviewComponent::ps_dataLoaded(CEntityFlags::Entity entities, CEntityFlags::ReadState state, int number)
{ {
Q_UNUSED(number); Q_UNUSED(number);
if (!entities.testFlag(CEntityFlags::SharedInfoObjectEntity) && !entities.testFlag(CEntityFlags::DbInfoObjectEntity) && !CEntityFlags::anySwiftDbEntity(entities)) { return; } if (!CEntityFlags::isFinishedReadState(state)) return;
if (state == CEntityFlags::ReadFinished || state == CEntityFlags::ReadFinishedRestricted) if (!entities.testFlag(CEntityFlags::SharedInfoObjectEntity) && entities.testFlag(CEntityFlags::DbInfoObjectEntity) && !CEntityFlags::anySwiftDbEntity(entities)) { return; }
{ this->m_loadInProgress = false;
this->m_loadInProgress = false; emit this->ps_triggerDigestGuiUpdate();
emit this->ps_triggerDigestGuiUpdate();
}
} }
void CDbLoadOverviewComponent::ps_loadInfoObjects() void CDbLoadOverviewComponent::ps_loadInfoObjects()

View File

@@ -108,7 +108,7 @@ namespace BlackGui
//! Refresh directly from DB //! Refresh directly from DB
void ps_refreshDbPressed(); void ps_refreshDbPressed();
//! Refresh directly from DB //! Refresh directly from shared files
void ps_refreshSharedPressed(); void ps_refreshSharedPressed();
//! Init the value panel //! Init the value panel

View File

@@ -68,6 +68,11 @@ namespace BlackMisc
return numberOfEntities(flag) == 1; return numberOfEntities(flag) == 1;
} }
bool CEntityFlags::isFinishedReadState(CEntityFlags::ReadState state)
{
return state == ReadFinished || state == ReadFinishedRestricted;
}
int CEntityFlags::numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag) int CEntityFlags::numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag)
{ {
const int c = static_cast<int>(std::bitset<(sizeof(flag) * 8)>(flag).count()); const int c = static_cast<int>(std::bitset<(sizeof(flag) * 8)>(flag).count());

View File

@@ -76,6 +76,9 @@ namespace BlackMisc
//! Representing single entity? //! Representing single entity?
static bool isSingleEntity(BlackMisc::Network::CEntityFlags::Entity flag); static bool isSingleEntity(BlackMisc::Network::CEntityFlags::Entity flag);
//! Any finished state
static bool isFinishedReadState(ReadState state);
//! Represented number of entities //! Represented number of entities
static int numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag); static int numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag);