Pass back URLs for changed URL check. This allows to display the changed locations.

This commit is contained in:
Klaus Basan
2017-08-10 19:29:29 +02:00
committed by Mathew Sutcliffe
parent e89d7d7b15
commit addb008ffa
10 changed files with 30 additions and 15 deletions

View File

@@ -137,10 +137,12 @@ namespace BlackCore
if (entities.testFlag(CEntityFlags::AirportEntity)) { CDataCache::instance()->clearAllValues(this->m_airportCache.getKey()); }
}
bool CAirportDataReader::hasChangedUrl(CEntityFlags::Entity entity) const
bool CAirportDataReader::hasChangedUrl(CEntityFlags::Entity entity, CUrl &oldUrlInfo, CUrl &newUrlInfo) const
{
Q_UNUSED(entity);
return CDatabaseReader::isChangedUrl(this->m_readerUrlCache.get(), getBaseUrl(CDbFlags::DbReading));
oldUrlInfo = this->m_readerUrlCache.get();
newUrlInfo = this->getBaseUrl(CDbFlags::DbReading);
return CDatabaseReader::isChangedUrl(oldUrlInfo, newUrlInfo);
}
CUrl CAirportDataReader::getDbServiceBaseUrl() const

View File

@@ -67,7 +67,7 @@ namespace BlackCore
protected:
// base class overrides
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CUrl &oldUrlInfo, BlackMisc::Network::CUrl &newUrlInfo) const override;
virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private slots:

View File

@@ -84,7 +84,9 @@ namespace BlackCore
// check mode here for consistency
Q_ASSERT_X(!getBaseUrl(rmDbOrSharedFlag).isEmpty(), Q_FUNC_INFO, "Wrong retrieval mode");
const bool changedUrl = this->hasChangedUrl(currentEntity);
CUrl oldUrlInfo;
CUrl newUrlInfo;
const bool changedUrl = this->hasChangedUrl(currentEntity, oldUrlInfo, newUrlInfo);
const QDateTime cacheTs(this->getCacheTimestamp(currentEntity));
const QDateTime latestEntityTs(this->getLatestEntityTimestampFromDbInfoObjects(currentEntity));
const qint64 cacheTimestamp = cacheTs.isValid() ? cacheTs.toMSecsSinceEpoch() : -1;
@@ -104,7 +106,10 @@ namespace BlackCore
if (changedUrl)
{
CLogMessage(this).info("Data location changed, will override cache for '%1' reading '%2'") << currentEntityName << rmDbOrSharedFlagString;
CLogMessage(this).info("Data location for '%1' changed ('%2'->'%3'), will override cache for reading '%4'")
<< currentEntityName
<< oldUrlInfo.toQString() << newUrlInfo.toQString()
<< rmDbOrSharedFlagString;
}
else
{

View File

@@ -319,12 +319,14 @@ namespace BlackCore
//! Changed URL, means the cache values have been read from elsewhere
//! \remark testing based on BlackMisc::Db::CDbFlags::DbReading
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const = 0;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity,
BlackMisc::Network::CUrl &oldUrlInfo,
BlackMisc::Network::CUrl &newUrlInfo) const = 0;
//! Cache for given entity has changed
virtual void cacheHasChanged(BlackMisc::Network::CEntityFlags::Entity entities);
//! Has URL been changed? Means we load from a differrent server
//! Has URL been changed? Means we load from a different server
static bool isChangedUrl(const BlackMisc::Network::CUrl &oldUrl, const BlackMisc::Network::CUrl &currentUrl);
//! @}

View File

@@ -557,10 +557,12 @@ namespace BlackCore
}
}
bool CIcaoDataReader::hasChangedUrl(CEntityFlags::Entity entity) const
bool CIcaoDataReader::hasChangedUrl(CEntityFlags::Entity entity, CUrl &oldUrlInfo, CUrl &newUrlInfo) const
{
Q_UNUSED(entity);
return CDatabaseReader::isChangedUrl(this->m_readerUrlCache.get(), getBaseUrl(CDbFlags::DbReading));
oldUrlInfo = this->m_readerUrlCache.get();
newUrlInfo = this->getBaseUrl(CDbFlags::DbReading);
return CDatabaseReader::isChangedUrl(oldUrlInfo, newUrlInfo);
}
CUrl CIcaoDataReader::getDbServiceBaseUrl() const

View File

@@ -128,7 +128,7 @@ namespace BlackCore
protected:
// cache handling for base class
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CUrl &oldUrlInfo, BlackMisc::Network::CUrl &newUrlInfo) const override;
virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private slots:

View File

@@ -81,10 +81,12 @@ namespace BlackCore
return 0;
}
bool CInfoDataReader::hasChangedUrl(CEntityFlags::Entity entity) const
bool CInfoDataReader::hasChangedUrl(CEntityFlags::Entity entity, CUrl &oldUrlInfo, CUrl &newUrlInfo) const
{
// not implemented
Q_UNUSED(entity);
oldUrlInfo = this->getBaseUrl(CDbFlags::DbReading);
newUrlInfo = this->getBaseUrl(CDbFlags::DbReading);
return false;
}

View File

@@ -63,7 +63,7 @@ namespace BlackCore
protected:
// cache handling for base class
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CUrl &oldUrlInfo, BlackMisc::Network::CUrl &newUrlInfo) const override;
virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private:

View File

@@ -569,10 +569,12 @@ namespace BlackCore
}
}
bool CModelDataReader::hasChangedUrl(CEntityFlags::Entity entity) const
bool CModelDataReader::hasChangedUrl(CEntityFlags::Entity entity, CUrl &oldUrlInfo, CUrl &newUrlInfo) const
{
Q_UNUSED(entity);
return CDatabaseReader::isChangedUrl(this->m_readerUrlCache.get(), getBaseUrl(CDbFlags::DbReading));
oldUrlInfo = this->m_readerUrlCache.get();
newUrlInfo = this->getBaseUrl(CDbFlags::DbReading);
return CDatabaseReader::isChangedUrl(oldUrlInfo, newUrlInfo);
}
CUrl CModelDataReader::getDbServiceBaseUrl() const

View File

@@ -138,7 +138,7 @@ namespace BlackCore
protected:
// cache handling for base class
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CUrl &oldUrlInfo, BlackMisc::Network::CUrl &newUrlInfo) const override;
virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private slots: