mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-17 19:05:31 +08:00
Ref T246, allow to load DB data per entity from resource files
This commit is contained in:
@@ -601,18 +601,25 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
CStatusMessageList CDatabaseReader::initFromLocalResourceFiles(bool inBackground)
|
CStatusMessageList CDatabaseReader::initFromLocalResourceFiles(bool inBackground)
|
||||||
|
{
|
||||||
|
return this->initFromLocalResourceFiles(this->getSupportedEntities(), inBackground);
|
||||||
|
}
|
||||||
|
|
||||||
|
CStatusMessageList CDatabaseReader::initFromLocalResourceFiles(CEntityFlags::Entity entities, bool inBackground)
|
||||||
{
|
{
|
||||||
const bool overrideNewerOnly = true;
|
const bool overrideNewerOnly = true;
|
||||||
|
entities = this->maskBySupportedEntities(entities);
|
||||||
|
|
||||||
if (inBackground || !CThreadUtils::isCurrentThreadObjectThread(this))
|
if (inBackground || !CThreadUtils::isCurrentThreadObjectThread(this))
|
||||||
{
|
{
|
||||||
const bool s = this->readFromJsonFilesInBackground(CDirectoryUtils::staticDbFilesDirectory(), this->getSupportedEntities(), overrideNewerOnly);
|
const bool s = this->readFromJsonFilesInBackground(CDirectoryUtils::staticDbFilesDirectory(), entities, overrideNewerOnly);
|
||||||
return s ?
|
return s ?
|
||||||
CStatusMessage(this).info("Started reading in background from '%1' of entities: '%2'") << CDirectoryUtils::staticDbFilesDirectory() << CEntityFlags::flagToString(this->getSupportedEntities()) :
|
CStatusMessage(this).info("Started reading in background from '%1' of entities: '%2'") << CDirectoryUtils::staticDbFilesDirectory() << CEntityFlags::flagToString(entities) :
|
||||||
CStatusMessage(this).error("Starting reading in background from '%1' of entities: '%2' failed") << CDirectoryUtils::staticDbFilesDirectory() << CEntityFlags::flagToString(this->getSupportedEntities());
|
CStatusMessage(this).error("Starting reading in background from '%1' of entities: '%2' failed") << CDirectoryUtils::staticDbFilesDirectory() << CEntityFlags::flagToString(entities);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return this->readFromJsonFiles(CDirectoryUtils::staticDbFilesDirectory(), this->getSupportedEntities(), overrideNewerOnly);
|
return this->readFromJsonFiles(CDirectoryUtils::staticDbFilesDirectory(), entities, overrideNewerOnly);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -266,6 +266,10 @@ namespace BlackCore
|
|||||||
//! \remark normally used after installation for a 1st time init
|
//! \remark normally used after installation for a 1st time init
|
||||||
BlackMisc::CStatusMessageList initFromLocalResourceFiles(bool inBackground);
|
BlackMisc::CStatusMessageList initFromLocalResourceFiles(bool inBackground);
|
||||||
|
|
||||||
|
//! Init from local resource file
|
||||||
|
//! \remark normally used after installation for a 1st time init
|
||||||
|
BlackMisc::CStatusMessageList initFromLocalResourceFiles(BlackMisc::Network::CEntityFlags::Entity entities, bool inBackground);
|
||||||
|
|
||||||
//! Data read from local data
|
//! Data read from local data
|
||||||
virtual BlackMisc::CStatusMessageList readFromJsonFiles(const QString &dir, BlackMisc::Network::CEntityFlags::Entity whatToRead, bool overrideNewer) = 0;
|
virtual BlackMisc::CStatusMessageList readFromJsonFiles(const QString &dir, BlackMisc::Network::CEntityFlags::Entity whatToRead, bool overrideNewer) = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -47,9 +47,6 @@ namespace BlackCore
|
|||||||
//! Consolidate models with DB data
|
//! Consolidate models with DB data
|
||||||
static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
||||||
|
|
||||||
//! Fill in missing data if only the id is provided, but no data
|
|
||||||
static int fillInMissingAircraftAndLiveryEntities(BlackMisc::Simulation::CAircraftModelList &models);
|
|
||||||
|
|
||||||
//! Consolidate models with simulator model data (aka "models on disk")
|
//! Consolidate models with simulator model data (aka "models on disk")
|
||||||
//! \remark kept here with the other consolidate functions, but actually DB independent
|
//! \remark kept here with the other consolidate functions, but actually DB independent
|
||||||
static BlackMisc::Simulation::CAircraftModelList consolidateModelsWithSimulatorModelsAllowsGuiRefresh(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CAircraftModelList &simulatorModels, bool processEvents);
|
static BlackMisc::Simulation::CAircraftModelList consolidateModelsWithSimulatorModelsAllowsGuiRefresh(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CAircraftModelList &simulatorModels, bool processEvents);
|
||||||
@@ -70,6 +67,9 @@ namespace BlackCore
|
|||||||
//! Consolidate model data with DB distributors
|
//! Consolidate model data with DB distributors
|
||||||
static int consolidateModelsWithDbDistributor(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
static int consolidateModelsWithDbDistributor(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
||||||
|
|
||||||
|
//! Fill in missing data if only the id is provided, but no data
|
||||||
|
static int fillInMissingAircraftAndLiveryEntities(BlackMisc::Simulation::CAircraftModelList &models);
|
||||||
|
|
||||||
//! Create stash models if the DB models miss that simulator
|
//! Create stash models if the DB models miss that simulator
|
||||||
static BlackMisc::Simulation::CAircraftModelList updateSimulatorForFsFamily(const BlackMisc::Simulation::CAircraftModelList &ownModels, int maxToStash = -1, BlackCore::IProgressIndicator *progressIndicator = nullptr, bool processEvents = true);
|
static BlackMisc::Simulation::CAircraftModelList updateSimulatorForFsFamily(const BlackMisc::Simulation::CAircraftModelList &ownModels, int maxToStash = -1, BlackCore::IProgressIndicator *progressIndicator = nullptr, bool processEvents = true);
|
||||||
|
|
||||||
|
|||||||
@@ -132,13 +132,13 @@ namespace BlackCore
|
|||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
bool areAllDataRead() const;
|
bool areAllDataRead() const;
|
||||||
|
|
||||||
// data read from local data
|
|
||||||
virtual BlackMisc::CStatusMessageList readFromJsonFiles(const QString &dir, BlackMisc::Network::CEntityFlags::Entity whatToRead, bool overrideNewerOnly) override;
|
|
||||||
virtual bool readFromJsonFilesInBackground(const QString &dir, BlackMisc::Network::CEntityFlags::Entity whatToRead, bool overrideNewerOnly) override;
|
|
||||||
|
|
||||||
//! Write to JSON file
|
//! Write to JSON file
|
||||||
bool writeToJsonFiles(const QString &dir) const;
|
bool writeToJsonFiles(const QString &dir) const;
|
||||||
|
|
||||||
|
// Data read from local data
|
||||||
|
virtual BlackMisc::CStatusMessageList readFromJsonFiles(const QString &dir, BlackMisc::Network::CEntityFlags::Entity whatToRead, bool overrideNewerOnly) override;
|
||||||
|
virtual bool readFromJsonFilesInBackground(const QString &dir, BlackMisc::Network::CEntityFlags::Entity whatToRead, bool overrideNewerOnly) override;
|
||||||
|
|
||||||
// cache handling for base class
|
// cache handling for base class
|
||||||
virtual BlackMisc::Network::CEntityFlags::Entity getSupportedEntities() const override;
|
virtual BlackMisc::Network::CEntityFlags::Entity getSupportedEntities() const override;
|
||||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||||
|
|||||||
@@ -1599,4 +1599,25 @@ namespace BlackCore
|
|||||||
);
|
);
|
||||||
return msgs;
|
return msgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CStatusMessageList CWebDataServices::initDbCachesFromLocalResourceFiles(CEntityFlags::Entity entities, bool inBackground)
|
||||||
|
{
|
||||||
|
CStatusMessageList msgs;
|
||||||
|
msgs.push_back(
|
||||||
|
m_icaoDataReader && m_icaoDataReader->supportsAnyOfEntities(entities) ?
|
||||||
|
m_icaoDataReader->initFromLocalResourceFiles(entities, inBackground) :
|
||||||
|
CStatusMessage(this).info("No ICAO reader or not supporting entities")
|
||||||
|
);
|
||||||
|
msgs.push_back(
|
||||||
|
m_modelDataReader && m_modelDataReader->supportsAnyOfEntities(entities) ?
|
||||||
|
m_modelDataReader->initFromLocalResourceFiles(entities, inBackground) :
|
||||||
|
CStatusMessage(this).info("No model reader or not supporting entities")
|
||||||
|
);
|
||||||
|
msgs.push_back(
|
||||||
|
m_airportDataReader && m_airportDataReader->supportsAnyOfEntities(entities) ?
|
||||||
|
m_airportDataReader->initFromLocalResourceFiles(entities, inBackground) :
|
||||||
|
CStatusMessage(this).info("No airport reader or not supporting entities")
|
||||||
|
);
|
||||||
|
return msgs;
|
||||||
|
}
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -474,12 +474,17 @@ namespace BlackCore
|
|||||||
|
|
||||||
//! Load DB data from disk (mainly for initial data load and testing scenarios)
|
//! Load DB data from disk (mainly for initial data load and testing scenarios)
|
||||||
//! \remark if the DB readers are alred in aother thread reads in background
|
//! \remark if the DB readers are alred in aother thread reads in background
|
||||||
|
//! \sa CWebDataServices::initDbCachesFromLocalResourceFiles for reading from local resource file
|
||||||
bool readDbDataFromDisk(const QString &dir, bool inBackground, bool overrideNewerOnly);
|
bool readDbDataFromDisk(const QString &dir, bool inBackground, bool overrideNewerOnly);
|
||||||
|
|
||||||
//! Init caches from local DB files
|
//! Init caches from local DB files
|
||||||
//! \remark the shared files coming with the installer
|
//! \remark the shared files coming with the installer
|
||||||
BlackMisc::CStatusMessageList initDbCachesFromLocalResourceFiles(bool inBackground);
|
BlackMisc::CStatusMessageList initDbCachesFromLocalResourceFiles(bool inBackground);
|
||||||
|
|
||||||
|
//! Init caches from local DB files per given entities
|
||||||
|
//! \remark the shared files coming with the installer
|
||||||
|
BlackMisc::CStatusMessageList initDbCachesFromLocalResourceFiles(BlackMisc::Network::CEntityFlags::Entity entities, bool inBackground);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
//! Combined read signal
|
//! Combined read signal
|
||||||
void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
|
void dataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
|
||||||
|
|||||||
Reference in New Issue
Block a user