From 0482b9883d70fe201b10b48ccca4920225ead564 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 5 Feb 2020 21:53:05 +0100 Subject: [PATCH] [DB readers] misc fixes found during "datastore down" investigation * added CEntityFlags::AircraftCategoryEntity in config lists * flag to name * missed initial reading of categories * style --- src/blackcore/db/databasereader.cpp | 11 +++--- src/blackcore/db/databasereaderconfig.cpp | 44 ++++++++++++----------- src/blackcore/db/icaodatareader.cpp | 2 +- src/blackcore/webdataservices.cpp | 2 +- src/blackmisc/db/dbflags.cpp | 36 ++++++++++--------- 5 files changed, 53 insertions(+), 42 deletions(-) diff --git a/src/blackcore/db/databasereader.cpp b/src/blackcore/db/databasereader.cpp index e81ad865c..7a1964eb8 100644 --- a/src/blackcore/db/databasereader.cpp +++ b/src/blackcore/db/databasereader.cpp @@ -56,7 +56,8 @@ namespace BlackCore // we accept cached data Q_ASSERT_X(!entities.testFlag(CEntityFlags::DbInfoObjectEntity), Q_FUNC_INFO, "Read info objects directly"); - const bool hasDbInfoObjects = this->hasDbInfoObjects(); // no info objects is not necessarily an error, but indicates a) either data not available (DB down) or b) only caches are used + const bool hasDbInfoObjects = this->hasDbInfoObjects(); // no info objects is not necessarily an error, but indicates a) either data not available (DB down) or b) only caches are used + // const bool hasSharedInfoObjects = this->hasSharedInfoObjects(); CEntityFlags::Entity allEntities = entities; CEntityFlags::Entity cachedEntities = CEntityFlags::NoEntity; CEntityFlags::Entity dbEntities = CEntityFlags::NoEntity; @@ -74,7 +75,7 @@ namespace BlackCore const CDbFlags::DataRetrievalModeFlag rmDbOrSharedFlag = CDbFlags::modeToModeFlag(rm & CDbFlags::DbReadingOrShared); const QString rmDbOrSharedFlagString = CDbFlags::flagToString(rmDbOrSharedFlag); const bool rmDbReadingOrShared = (rmDbOrSharedFlag == CDbFlags::DbReading || rmDbOrSharedFlag == CDbFlags::Shared); - const int currentEntityCount = this->getCacheCount(currentEntity); + const int currentEntityCount = this->getCacheCount(currentEntity); if (rm.testFlag(CDbFlags::Ignore) || rm.testFlag(CDbFlags::Canceled)) { @@ -82,7 +83,9 @@ namespace BlackCore } else if (rm.testFlag(CDbFlags::Cached)) { - // info object comparisons only for: cache + shared or cache + DB data + // + // !!! info object comparisons only for: cache + shared or cache + DB data + // if (hasDbInfoObjects && rmDbReadingOrShared) { // check mode here for consistency @@ -123,7 +126,7 @@ namespace BlackCore else { if (!rmDbReadingOrShared) { CLogMessage(this).info(u"No DB or shared reading for '%1', read mode is: '%2'") << currentEntityName << rmString; } - if (!hasDbInfoObjects) { CLogMessage(this).info(u"No DB info objects for '%1', read mode is: '%2'") << currentEntityName << rmString; } + if (!hasDbInfoObjects) { CLogMessage(this).info(u"No DB info objects for '%1', read mode is: '%2'") << currentEntityName << rmString; } if (currentEntityCount > 0) { CLogMessage(this).info(u"Cache for '%1' already read, %2 entries") << currentEntityName << currentEntityCount; diff --git a/src/blackcore/db/databasereaderconfig.cpp b/src/blackcore/db/databasereaderconfig.cpp index 3587b6000..835ab4a34 100644 --- a/src/blackcore/db/databasereaderconfig.cpp +++ b/src/blackcore/db/databasereaderconfig.cpp @@ -34,12 +34,12 @@ namespace BlackCore u' ' % CEntityFlags::flagToString(this->getEntities()) % u' ' % - this->m_cacheLifetime.toQString(i18n); + m_cacheLifetime.toQString(i18n); } CEntityFlags::Entity CDatabaseReaderConfig::getEntities() const { - return static_cast(this->m_entities); + return static_cast(m_entities); } bool CDatabaseReaderConfig::supportsEntities(CEntityFlags::Entity entities) const @@ -52,19 +52,19 @@ namespace BlackCore CDbFlags::DataRetrievalMode CDatabaseReaderConfig::getRetrievalMode() const { - return static_cast(this->m_retrievalMode); + return static_cast(m_retrievalMode); } void CDatabaseReaderConfig::markAsDbDown() { CDbFlags::DataRetrievalMode m = this->getRetrievalMode(); m = CDbFlags::adjustWhenDbIsDown(m); - this->m_retrievalMode = static_cast(m); + m_retrievalMode = static_cast(m); } void CDatabaseReaderConfig::setCacheLifetime(const CTime &time) { - this->m_cacheLifetime = time; + m_cacheLifetime = time; } bool CDatabaseReaderConfig::possiblyReadsFromSwiftDb() const @@ -96,7 +96,7 @@ namespace BlackCore bool CDatabaseReaderConfig::isValid() const { - return this->m_entities != BlackMisc::Network::CEntityFlags::NoEntity; + return m_entities != CEntityFlags::NoEntity; } CDatabaseReaderConfigList::CDatabaseReaderConfigList(const CSequence &other) : @@ -210,12 +210,13 @@ namespace BlackCore retrievalFlags |= CDbFlags::DbWriting; CDatabaseReaderConfigList l; l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftIcaoEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::AirportEntity, CDbFlags::Ignore, cacheLifetime)); // not needed in mapping tool l.push_back(CDatabaseReaderConfig(CEntityFlags::DistributorEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::CountryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftCategoryEntity, retrievalFlags, cacheLifetime)); return l; } @@ -228,12 +229,13 @@ namespace BlackCore CDatabaseReaderConfigList l; l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftIcaoEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::AirportEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::DistributorEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlagsWriting, cacheLifetime)); // for wizard - l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AirportEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::DistributorEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlagsWriting, cacheLifetime)); // for wizard + l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::CountryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftCategoryEntity, retrievalFlags, cacheLifetime)); return l; } @@ -243,12 +245,13 @@ namespace BlackCore const CDbFlags::DataRetrievalMode retrievalFlags = CDbFlags::CacheThenShared; CDatabaseReaderConfigList l; l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftIcaoEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::AirportEntity, CDbFlags::Ignore, cacheLifetime)); // not needed in mapping tool + l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AirportEntity, CDbFlags::Ignore, cacheLifetime)); // not needed in mapping tool l.push_back(CDatabaseReaderConfig(CEntityFlags::DistributorEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::CountryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftCategoryEntity, retrievalFlags, cacheLifetime)); return l; } @@ -261,9 +264,10 @@ namespace BlackCore l.push_back(CDatabaseReaderConfig(CEntityFlags::AirlineIcaoEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::AirportEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::DistributorEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlags, cacheLifetime)); - l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::ModelEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::LiveryEntity, retrievalFlags, cacheLifetime)); l.push_back(CDatabaseReaderConfig(CEntityFlags::CountryEntity, retrievalFlags, cacheLifetime)); + l.push_back(CDatabaseReaderConfig(CEntityFlags::AircraftCategoryEntity, retrievalFlags, cacheLifetime)); return l; } } // ns diff --git a/src/blackcore/db/icaodatareader.cpp b/src/blackcore/db/icaodatareader.cpp index 51764b2c1..935e6e211 100644 --- a/src/blackcore/db/icaodatareader.cpp +++ b/src/blackcore/db/icaodatareader.cpp @@ -784,7 +784,7 @@ namespace BlackCore bool CIcaoDataReader::hasChangedUrl(CEntityFlags::Entity entity, CUrl &oldUrlInfo, CUrl &newUrlInfo) const { - Q_UNUSED(entity); + Q_UNUSED(entity) oldUrlInfo = m_readerUrlCache.get(); newUrlInfo = this->getBaseUrl(CDbFlags::DbReading); return CDatabaseReader::isChangedUrl(oldUrlInfo, newUrlInfo); diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index 816229305..34b197580 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -102,7 +102,7 @@ namespace BlackCore // trigger reading // but do not start all at the same time - const CEntityFlags::Entity icaoPart = entities & CEntityFlags::AllIcaoAndCountries; + const CEntityFlags::Entity icaoPart = entities & CEntityFlags::AllIcaoCountriesCategory; const CEntityFlags::Entity modelPart = entities & CEntityFlags::DistributorLiveryModel; CEntityFlags::Entity remainingEntities = entities & ~icaoPart; remainingEntities &= ~modelPart; diff --git a/src/blackmisc/db/dbflags.cpp b/src/blackmisc/db/dbflags.cpp index 07762c526..43f5eddf4 100644 --- a/src/blackmisc/db/dbflags.cpp +++ b/src/blackmisc/db/dbflags.cpp @@ -26,11 +26,13 @@ namespace BlackMisc switch (flag) { case Unspecified: return "Unspecified"; - case Ignore: return "Ignore"; - case Canceled: return "Canceled"; - case DbReading: return "Direct DB access"; - case Shared: return "Shared data"; - case Cached: return "Cached data"; + case Ignore: return "Ignore"; + case Canceled: return "Canceled"; + case DbReading: return "Direct DB access"; + case DbWriting: return "DB writing"; + case Shared: return "Shared data"; + case SharedInfoOnly: return "Shared info only"; + case Cached: return "Cached data"; default: BLACK_VERIFY_X(false, Q_FUNC_INFO, "wrong flags"); return "wrong flags"; @@ -41,25 +43,27 @@ namespace BlackMisc { QStringList list; if (mode.testFlag(Unspecified)) list << "Unspecified"; - if (mode.testFlag(Canceled)) list << "Canceled"; - if (mode.testFlag(Ignore)) list << "Ignore"; + if (mode.testFlag(Canceled)) list << "Canceled"; + if (mode.testFlag(Ignore)) list << "Ignore"; - if (mode.testFlag(DbReading)) list << "Direct DB access"; - if (mode.testFlag(Shared)) list << "Shared data"; - if (mode.testFlag(Cached)) list << "Cached data"; + if (mode.testFlag(DbReading)) list << "Direct DB access"; + if (mode.testFlag(DbWriting)) list << "DB writing"; + if (mode.testFlag(Shared)) list << "Shared data"; + if (mode.testFlag(SharedInfoOnly)) list << "Shared info only"; + if (mode.testFlag(Cached)) list << "Cached data"; return list.join(", "); } CDbFlags::DataRetrievalModeFlag CDbFlags::modeToModeFlag(DataRetrievalMode mode) { if (mode == Unspecified) return Unspecified; - if (mode == DbReading) return DbReading; - if (mode == DbWriting) return DbWriting; - if (mode == Shared) return Shared; + if (mode == DbReading) return DbReading; + if (mode == DbWriting) return DbWriting; + if (mode == Shared) return Shared; if (mode == SharedInfoOnly) return SharedInfoOnly; - if (mode == Cached) return Cached; - if (mode == Canceled) return Canceled; - if (mode == Ignore) return Ignore; + if (mode == Cached) return Cached; + if (mode == Canceled) return Canceled; + if (mode == Ignore) return Ignore; return Unspecified; }