Ref T224, info object reader fixes

* caches need to be obtained from the respective readers
* BLACK_VERIFY to detect problems
* fixed masking which was wrong (did mask by info object)
This commit is contained in:
Klaus Basan
2018-01-14 05:21:40 +01:00
parent 0fa4bf1e9d
commit 2a2a5e1349
2 changed files with 39 additions and 10 deletions

View File

@@ -360,7 +360,7 @@ namespace BlackCore
{
Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "need single entity");
static const QDateTime e;
const CDbInfoList il(getSharedInfoObjects());
const CDbInfoList il(this->getSharedInfoObjects());
if (il.isEmpty() || entity == CEntityFlags::NoEntity) { return e; }
const CDbInfo info = il.findFirstByEntityOrDefault(entity);
@@ -380,7 +380,7 @@ namespace BlackCore
{
if (!this->isInternetAccessible(QString("No network/internet access, will not read shared file headers for %1").arg(CEntityFlags::flagToString(entities)))) { return false; }
CEntityFlags::Entity allEntities(this->maskBySupportedEntities(entities));
CEntityFlags::Entity allEntities = entities & CEntityFlags::AllDbEntitiesNoInfoObjects;
CEntityFlags::Entity currentEntity = CEntityFlags::iterateDbEntities(allEntities);
const CUrl urlSharedDbdata = CDatabaseReader::getWorkingSharedDbdataDirectoryUrl();
if (urlSharedDbdata.isEmpty())
@@ -430,7 +430,7 @@ namespace BlackCore
CEntityFlags::Entity CDatabaseReader::getEntitesWithNewerHeaderTimestamp(CEntityFlags::Entity entities) const
{
entities = this->maskBySupportedEntities(entities); // handled by this reader
entities &= CEntityFlags::AllDbEntitiesNoInfoObjects;
CEntityFlags::Entity currentEntity = CEntityFlags::iterateDbEntities(entities);
CEntityFlags::Entity newerEntities = CEntityFlags::NoEntity;
while (currentEntity != CEntityFlags::NoEntity)
@@ -446,7 +446,7 @@ namespace BlackCore
CEntityFlags::Entity CDatabaseReader::getEntitesWithNewerSharedInfoObject(CEntityFlags::Entity entities) const
{
entities = this->maskBySupportedEntities(entities); // handled by this reader
entities &= CEntityFlags::AllDbEntitiesNoInfoObjects;
CEntityFlags::Entity currentEntity = CEntityFlags::iterateDbEntities(entities);
CEntityFlags::Entity newerEntities = CEntityFlags::NoEntity;
while (currentEntity != CEntityFlags::NoEntity)
@@ -569,12 +569,12 @@ namespace BlackCore
CEntityFlags::Entity CDatabaseReader::maskBySupportedEntities(CEntityFlags::Entity entities) const
{
return entities & getSupportedEntities();
return entities & this->getSupportedEntities();
}
bool CDatabaseReader::supportsAnyOfEntities(CEntityFlags::Entity entities) const
{
return static_cast<int>(maskBySupportedEntities(entities)) > 0;
return static_cast<int>(this->maskBySupportedEntities(entities)) > 0;
}
bool CDatabaseReader::hasCacheTimestampNewerThan(CEntityFlags::Entity entity, const QDateTime &threshold) const