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()); } 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); 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 CUrl CAirportDataReader::getDbServiceBaseUrl() const

View File

@@ -67,7 +67,7 @@ namespace BlackCore
protected: protected:
// base class overrides // base class overrides
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override; 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; virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private slots: private slots:

View File

@@ -84,7 +84,9 @@ namespace BlackCore
// check mode here for consistency // check mode here for consistency
Q_ASSERT_X(!getBaseUrl(rmDbOrSharedFlag).isEmpty(), Q_FUNC_INFO, "Wrong retrieval mode"); 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 cacheTs(this->getCacheTimestamp(currentEntity));
const QDateTime latestEntityTs(this->getLatestEntityTimestampFromDbInfoObjects(currentEntity)); const QDateTime latestEntityTs(this->getLatestEntityTimestampFromDbInfoObjects(currentEntity));
const qint64 cacheTimestamp = cacheTs.isValid() ? cacheTs.toMSecsSinceEpoch() : -1; const qint64 cacheTimestamp = cacheTs.isValid() ? cacheTs.toMSecsSinceEpoch() : -1;
@@ -104,7 +106,10 @@ namespace BlackCore
if (changedUrl) 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 else
{ {

View File

@@ -319,12 +319,14 @@ namespace BlackCore
//! Changed URL, means the cache values have been read from elsewhere //! Changed URL, means the cache values have been read from elsewhere
//! \remark testing based on BlackMisc::Db::CDbFlags::DbReading //! \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 //! Cache for given entity has changed
virtual void cacheHasChanged(BlackMisc::Network::CEntityFlags::Entity entities); 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); 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); 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 CUrl CIcaoDataReader::getDbServiceBaseUrl() const

View File

@@ -128,7 +128,7 @@ namespace BlackCore
protected: protected:
// cache handling for base class // cache handling for base class
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override; 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; virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private slots: private slots:

View File

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

View File

@@ -63,7 +63,7 @@ namespace BlackCore
protected: protected:
// cache handling for base class // cache handling for base class
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override; 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; virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private: 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); 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 CUrl CModelDataReader::getDbServiceBaseUrl() const

View File

@@ -138,7 +138,7 @@ namespace BlackCore
protected: protected:
// cache handling for base class // cache handling for base class
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override; 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; virtual BlackMisc::Network::CUrl getDbServiceBaseUrl() const override;
private slots: private slots: