[DB readers] misc fixes found during "datastore down" investigation

* added CEntityFlags::AircraftCategoryEntity in config lists
* flag to name
* missed initial reading of categories
* style
This commit is contained in:
Klaus Basan
2020-02-05 21:53:05 +01:00
committed by Mat Sutcliffe
parent 39907bf7ea
commit 0482b9883d
5 changed files with 53 additions and 42 deletions

View File

@@ -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;

View File

@@ -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<CEntityFlags::Entity>(this->m_entities);
return static_cast<CEntityFlags::Entity>(m_entities);
}
bool CDatabaseReaderConfig::supportsEntities(CEntityFlags::Entity entities) const
@@ -52,19 +52,19 @@ namespace BlackCore
CDbFlags::DataRetrievalMode CDatabaseReaderConfig::getRetrievalMode() const
{
return static_cast<CDbFlags::DataRetrievalMode>(this->m_retrievalMode);
return static_cast<CDbFlags::DataRetrievalMode>(m_retrievalMode);
}
void CDatabaseReaderConfig::markAsDbDown()
{
CDbFlags::DataRetrievalMode m = this->getRetrievalMode();
m = CDbFlags::adjustWhenDbIsDown(m);
this->m_retrievalMode = static_cast<int>(m);
m_retrievalMode = static_cast<int>(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<CDatabaseReaderConfig> &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

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;
}