diff --git a/src/blackcore/db/airportdatareader.cpp b/src/blackcore/db/airportdatareader.cpp index ad8bd9fe2..4fad3c11d 100644 --- a/src/blackcore/db/airportdatareader.cpp +++ b/src/blackcore/db/airportdatareader.cpp @@ -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 diff --git a/src/blackcore/db/airportdatareader.h b/src/blackcore/db/airportdatareader.h index d6f879d9f..fe765474c 100644 --- a/src/blackcore/db/airportdatareader.h +++ b/src/blackcore/db/airportdatareader.h @@ -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: diff --git a/src/blackcore/db/databasereader.cpp b/src/blackcore/db/databasereader.cpp index 0f3d07747..034fe9ae8 100644 --- a/src/blackcore/db/databasereader.cpp +++ b/src/blackcore/db/databasereader.cpp @@ -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 { diff --git a/src/blackcore/db/databasereader.h b/src/blackcore/db/databasereader.h index 01f7114ea..f3c001a1a 100644 --- a/src/blackcore/db/databasereader.h +++ b/src/blackcore/db/databasereader.h @@ -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 ¤tUrl); //! @} diff --git a/src/blackcore/db/icaodatareader.cpp b/src/blackcore/db/icaodatareader.cpp index 1960834f6..4cd9599a7 100644 --- a/src/blackcore/db/icaodatareader.cpp +++ b/src/blackcore/db/icaodatareader.cpp @@ -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 diff --git a/src/blackcore/db/icaodatareader.h b/src/blackcore/db/icaodatareader.h index b8ca2b84d..3d51129a0 100644 --- a/src/blackcore/db/icaodatareader.h +++ b/src/blackcore/db/icaodatareader.h @@ -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: diff --git a/src/blackcore/db/infodatareader.cpp b/src/blackcore/db/infodatareader.cpp index 49b769903..9f2b1e26e 100644 --- a/src/blackcore/db/infodatareader.cpp +++ b/src/blackcore/db/infodatareader.cpp @@ -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; } diff --git a/src/blackcore/db/infodatareader.h b/src/blackcore/db/infodatareader.h index da5fe1d42..3bf77f9c1 100644 --- a/src/blackcore/db/infodatareader.h +++ b/src/blackcore/db/infodatareader.h @@ -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: diff --git a/src/blackcore/db/modeldatareader.cpp b/src/blackcore/db/modeldatareader.cpp index 9e0e20aae..c6ea41ef3 100644 --- a/src/blackcore/db/modeldatareader.cpp +++ b/src/blackcore/db/modeldatareader.cpp @@ -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 diff --git a/src/blackcore/db/modeldatareader.h b/src/blackcore/db/modeldatareader.h index 50f1584b3..5fbef26ea 100644 --- a/src/blackcore/db/modeldatareader.h +++ b/src/blackcore/db/modeldatareader.h @@ -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: