diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index e8cc99d89..d720862a9 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -768,18 +768,9 @@ namespace BlackCore { // obtain entities from real readers (means when reader is really used) CEntityFlags::Entity entities = CEntityFlags::NoEntity; - if (m_icaoDataReader) - { - entities |= CWebReaderFlags::allEntitiesForReaders(CWebReaderFlags::IcaoDataReader); - } - if (m_modelDataReader) - { - entities |= CWebReaderFlags::allEntitiesForReaders(CWebReaderFlags::ModelReader); - } - if (m_airportDataReader) - { - entities |= CWebReaderFlags::allEntitiesForReaders(CWebReaderFlags::AirportReader); - } + if (m_icaoDataReader) { entities |= CWebReaderFlags::allEntitiesForReaders(CWebReaderFlags::IcaoDataReader); } + if (m_modelDataReader) { entities |= CWebReaderFlags::allEntitiesForReaders(CWebReaderFlags::ModelReader); } + if (m_airportDataReader) { entities |= CWebReaderFlags::allEntitiesForReaders(CWebReaderFlags::AirportReader); } // when we have a config, we ignore the ones not from cache or DB if (!m_dbReaderConfig.isEmpty()) @@ -798,7 +789,7 @@ namespace BlackCore return cats; } - void CWebDataServices::initReaders(CWebReaderFlags::WebReader flags, CEntityFlags::Entity entities) + void CWebDataServices::initReaders(CWebReaderFlags::WebReader readersNeeded, CEntityFlags::Entity entities) { Q_ASSERT_X(CThreadUtils::isCurrentThreadApplicationThread(), Q_FUNC_INFO, "shall run in main application thread"); @@ -817,7 +808,7 @@ namespace BlackCore const bool databaseUp = CInfoDataReader::canPingSwiftServer(); if (!databaseUp) { dbReaderConfig.markAsDbDown(); } - if (anyDbEntities && flags.testFlag(CWebReaderFlags::WebReaderFlag::DbInfoDataReader)) + if (anyDbEntities && readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::DbInfoDataReader)) { // info data reader has a special role, it will not be triggered in triggerRead() if (databaseUp) @@ -826,7 +817,7 @@ namespace BlackCore } else { - CLogMessage(this).warning("DB unreachable, skipping read from info data reader"); + CLogMessage(this).warning("DB unreachable, skipping read from DB info data reader"); } } } @@ -839,7 +830,7 @@ namespace BlackCore // 2. Status file, updating the VATSIM related caches // Read as soon as initReaders is done - if (flags.testFlag(CWebReaderFlags::VatsimStatusReader) || flags.testFlag(CWebReaderFlags::VatsimDataReader) || flags.testFlag(CWebReaderFlags::VatsimMetarReader)) + if (readersNeeded.testFlag(CWebReaderFlags::VatsimStatusReader) || readersNeeded.testFlag(CWebReaderFlags::VatsimDataReader) || readersNeeded.testFlag(CWebReaderFlags::VatsimMetarReader)) { m_vatsimStatusReader = new CVatsimStatusFileReader(this); c = connect(m_vatsimStatusReader, &CVatsimStatusFileReader::dataFileRead, this, &CWebDataServices::vatsimStatusFileRead); @@ -853,7 +844,7 @@ namespace BlackCore // ---- "normal data", triggerRead will start read, not starting directly // 3. VATSIM bookings - if (flags.testFlag(CWebReaderFlags::WebReaderFlag::VatsimBookingReader)) + if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimBookingReader)) { m_vatsimBookingReader = new CVatsimBookingReader(this); c = connect(m_vatsimBookingReader, &CVatsimBookingReader::atcBookingsRead, this, &CWebDataServices::receivedBookings); @@ -866,7 +857,7 @@ namespace BlackCore } // 4. VATSIM data file - if (flags.testFlag(CWebReaderFlags::WebReaderFlag::VatsimDataReader)) + if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimDataReader)) { m_vatsimDataFileReader = new CVatsimDataFileReader(this); c = connect(m_vatsimDataFileReader, &CVatsimDataFileReader::dataFileRead, this, &CWebDataServices::vatsimDataFileRead); @@ -879,7 +870,7 @@ namespace BlackCore } // 5. VATSIM METAR data - if (flags.testFlag(CWebReaderFlags::WebReaderFlag::VatsimMetarReader)) + if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimMetarReader)) { m_vatsimMetarReader = new CVatsimMetarReader(this); c = connect(m_vatsimMetarReader, &CVatsimMetarReader::metarsRead, this, &CWebDataServices::receivedMetars); @@ -892,7 +883,7 @@ namespace BlackCore } // 6. ICAO data reader - if (flags.testFlag(CWebReaderFlags::WebReaderFlag::IcaoDataReader)) + if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::IcaoDataReader)) { m_icaoDataReader = new CIcaoDataReader(this, dbReaderConfig); c = connect(m_icaoDataReader, &CIcaoDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader); @@ -903,7 +894,7 @@ namespace BlackCore } // 7. Model reader - if (flags.testFlag(CWebReaderFlags::WebReaderFlag::ModelReader)) + if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::ModelReader)) { m_modelDataReader = new CModelDataReader(this, dbReaderConfig); c = connect(m_modelDataReader, &CModelDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader); @@ -913,8 +904,8 @@ namespace BlackCore m_modelDataReader->start(QThread::LowPriority); } - // 8. Airport list reader - if (flags.testFlag(CWebReaderFlags::WebReaderFlag::AirportReader)) + // 8. Airport reader + if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::AirportReader)) { m_airportDataReader = new CAirportDataReader(this, dbReaderConfig); c = connect(m_airportDataReader, &CAirportDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader); diff --git a/src/blackcore/webdataservices.h b/src/blackcore/webdataservices.h index 9f172769b..001c53b58 100644 --- a/src/blackcore/webdataservices.h +++ b/src/blackcore/webdataservices.h @@ -476,7 +476,7 @@ namespace BlackCore void readFromSwiftReader(BlackMisc::Network::CEntityFlags::Entity entities, BlackMisc::Network::CEntityFlags::ReadState state, int number); //! Init the readers - void initReaders(CWebReaderFlags::WebReader flags, BlackMisc::Network::CEntityFlags::Entity entities); + void initReaders(CWebReaderFlags::WebReader readersNeeded, BlackMisc::Network::CEntityFlags::Entity entities); //! Init the info objects reader (DB web service) void initDbInfoObjectReaderAndTriggerRead(); diff --git a/src/blackmisc/network/entityflags.cpp b/src/blackmisc/network/entityflags.cpp index 68f7231ac..796a9be90 100644 --- a/src/blackmisc/network/entityflags.cpp +++ b/src/blackmisc/network/entityflags.cpp @@ -132,7 +132,7 @@ namespace BlackMisc bool CEntityFlags::isWarningOrAbove(CEntityFlags::ReadState state) { - CStatusMessage::StatusSeverity s = flagToSeverity(state); + const CStatusMessage::StatusSeverity s = flagToSeverity(state); switch (s) { case CStatusMessage::SeverityError: @@ -145,11 +145,8 @@ namespace BlackMisc bool CEntityFlags::anySwiftDbEntity(Entity entities) { - return - entities.testFlag(AirportEntity) || - entities.testFlag(AircraftIcaoEntity) || entities.testFlag(AirlineIcaoEntity) || - entities.testFlag(CountryEntity) || entities.testFlag(DistributorEntity) || - entities.testFlag(ModelEntity) || entities.testFlag(LiveryEntity); + const Entity dbEntities = entities & AllDbEntitiesNoInfoObjects; + return dbEntities != CEntityFlags::NoEntity; } CEntityFlags::Entity CEntityFlags::singleEntityByName(const QString &name) @@ -160,8 +157,8 @@ namespace BlackMisc if (name.contains("airline", Qt::CaseInsensitive)) { return AirlineIcaoEntity; } if (name.contains("airport", Qt::CaseInsensitive)) { return AirportEntity; } if (name.contains("distributor", Qt::CaseInsensitive)) { return DistributorEntity; } - if (name.contains("countr", Qt::CaseInsensitive)) { return CountryEntity; } - if (name.contains("liver", Qt::CaseInsensitive)) { return LiveryEntity; } + if (name.contains("countr", Qt::CaseInsensitive)) { return CountryEntity; } // singular/plural + if (name.contains("liver", Qt::CaseInsensitive)) { return LiveryEntity; } // singular/plural return NoEntity; }