mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 04:25:35 +08:00
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:
@@ -360,7 +360,7 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "need single entity");
|
Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "need single entity");
|
||||||
static const QDateTime e;
|
static const QDateTime e;
|
||||||
const CDbInfoList il(getSharedInfoObjects());
|
const CDbInfoList il(this->getSharedInfoObjects());
|
||||||
if (il.isEmpty() || entity == CEntityFlags::NoEntity) { return e; }
|
if (il.isEmpty() || entity == CEntityFlags::NoEntity) { return e; }
|
||||||
|
|
||||||
const CDbInfo info = il.findFirstByEntityOrDefault(entity);
|
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; }
|
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);
|
CEntityFlags::Entity currentEntity = CEntityFlags::iterateDbEntities(allEntities);
|
||||||
const CUrl urlSharedDbdata = CDatabaseReader::getWorkingSharedDbdataDirectoryUrl();
|
const CUrl urlSharedDbdata = CDatabaseReader::getWorkingSharedDbdataDirectoryUrl();
|
||||||
if (urlSharedDbdata.isEmpty())
|
if (urlSharedDbdata.isEmpty())
|
||||||
@@ -430,7 +430,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
CEntityFlags::Entity CDatabaseReader::getEntitesWithNewerHeaderTimestamp(CEntityFlags::Entity entities) const
|
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 currentEntity = CEntityFlags::iterateDbEntities(entities);
|
||||||
CEntityFlags::Entity newerEntities = CEntityFlags::NoEntity;
|
CEntityFlags::Entity newerEntities = CEntityFlags::NoEntity;
|
||||||
while (currentEntity != CEntityFlags::NoEntity)
|
while (currentEntity != CEntityFlags::NoEntity)
|
||||||
@@ -446,7 +446,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
CEntityFlags::Entity CDatabaseReader::getEntitesWithNewerSharedInfoObject(CEntityFlags::Entity entities) const
|
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 currentEntity = CEntityFlags::iterateDbEntities(entities);
|
||||||
CEntityFlags::Entity newerEntities = CEntityFlags::NoEntity;
|
CEntityFlags::Entity newerEntities = CEntityFlags::NoEntity;
|
||||||
while (currentEntity != CEntityFlags::NoEntity)
|
while (currentEntity != CEntityFlags::NoEntity)
|
||||||
@@ -569,12 +569,12 @@ namespace BlackCore
|
|||||||
|
|
||||||
CEntityFlags::Entity CDatabaseReader::maskBySupportedEntities(CEntityFlags::Entity entities) const
|
CEntityFlags::Entity CDatabaseReader::maskBySupportedEntities(CEntityFlags::Entity entities) const
|
||||||
{
|
{
|
||||||
return entities & getSupportedEntities();
|
return entities & this->getSupportedEntities();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CDatabaseReader::supportsAnyOfEntities(CEntityFlags::Entity entities) const
|
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
|
bool CDatabaseReader::hasCacheTimestampNewerThan(CEntityFlags::Entity entity, const QDateTime &threshold) const
|
||||||
|
|||||||
@@ -8,9 +8,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "blackcore/application.h"
|
#include "blackcore/application.h"
|
||||||
|
#include "blackcore/webdataservices.h"
|
||||||
#include "blackmisc/sequence.h"
|
#include "blackmisc/sequence.h"
|
||||||
#include "blackmisc/logmessage.h"
|
#include "blackmisc/logmessage.h"
|
||||||
#include "blackmisc/network/networkutils.h"
|
#include "blackmisc/network/networkutils.h"
|
||||||
|
#include "blackmisc/verify.h"
|
||||||
#include "infodatareader.h"
|
#include "infodatareader.h"
|
||||||
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
@@ -52,43 +54,70 @@ namespace BlackCore
|
|||||||
void CInfoDataReader::synchronizeCaches(CEntityFlags::Entity entities)
|
void CInfoDataReader::synchronizeCaches(CEntityFlags::Entity entities)
|
||||||
{
|
{
|
||||||
// no caching used here
|
// no caching used here
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
Q_UNUSED(entities);
|
Q_UNUSED(entities);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CInfoDataReader::admitCaches(CEntityFlags::Entity entities)
|
void CInfoDataReader::admitCaches(CEntityFlags::Entity entities)
|
||||||
{
|
{
|
||||||
// no caching used here
|
// no caching used here
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
Q_UNUSED(entities);
|
Q_UNUSED(entities);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CInfoDataReader::invalidateCaches(CEntityFlags::Entity entities)
|
void CInfoDataReader::invalidateCaches(CEntityFlags::Entity entities)
|
||||||
{
|
{
|
||||||
// no caching used here
|
// no caching used here
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
Q_UNUSED(entities);
|
Q_UNUSED(entities);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime CInfoDataReader::getCacheTimestamp(CEntityFlags::Entity entity) const
|
QDateTime CInfoDataReader::getCacheTimestamp(CEntityFlags::Entity entity) const
|
||||||
{
|
{
|
||||||
// no caching used here
|
// no own caching used here
|
||||||
Q_UNUSED(entity);
|
Q_UNUSED(entity);
|
||||||
return QDateTime();
|
Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "Need single entity");
|
||||||
|
Q_ASSERT_X(sApp, Q_FUNC_INFO, "Need sApp");
|
||||||
|
|
||||||
|
if (entity == CEntityFlags::DbInfoObjectEntity || entity == CEntityFlags::SharedInfoObjectEntity)
|
||||||
|
{
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
|
return QDateTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Forward to web data services so I get cache data from other readers
|
||||||
|
//! \fixme bit of a hack to use web data services here
|
||||||
|
return sApp->getWebDataServices()->getCacheTimestamp(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CInfoDataReader::getCacheCount(CEntityFlags::Entity entity) const
|
int CInfoDataReader::getCacheCount(CEntityFlags::Entity entity) const
|
||||||
{
|
{
|
||||||
// no caching used here
|
// no own caching used here
|
||||||
Q_UNUSED(entity);
|
Q_UNUSED(entity);
|
||||||
return 0;
|
Q_ASSERT_X(CEntityFlags::isSingleEntity(entity), Q_FUNC_INFO, "Need single entity");
|
||||||
|
Q_ASSERT_X(sApp, Q_FUNC_INFO, "Need sApp");
|
||||||
|
|
||||||
|
if (entity == CEntityFlags::DbInfoObjectEntity || entity == CEntityFlags::SharedInfoObjectEntity)
|
||||||
|
{
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Forward to web data services so I get cache data from other readers
|
||||||
|
//! \fixme bit of a hack to use web data services here
|
||||||
|
return sApp->getWebDataServices()->getCacheCount(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntityFlags::Entity CInfoDataReader::getEntitiesWithCacheCount() const
|
CEntityFlags::Entity CInfoDataReader::getEntitiesWithCacheCount() const
|
||||||
{
|
{
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
return CEntityFlags::NoEntity;
|
return CEntityFlags::NoEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntityFlags::Entity CInfoDataReader::getEntitiesWithCacheTimestampNewerThan(const QDateTime &threshold) const
|
CEntityFlags::Entity CInfoDataReader::getEntitiesWithCacheTimestampNewerThan(const QDateTime &threshold) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(threshold);
|
Q_UNUSED(threshold);
|
||||||
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "Using this for CInfoDataReader makes no sense");
|
||||||
return CEntityFlags::NoEntity;
|
return CEntityFlags::NoEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user