refs #720, adjusted model loader

* callback function to data consolidation (so I can refer to consolidation in BlackCore)
* use status message in parser
* avoid duplicate keys (WOAI has ambiguous model strings which are to be excluded)
This commit is contained in:
Klaus Basan
2016-08-09 01:33:32 +02:00
committed by Mathew Sutcliffe
parent d75b105ee3
commit 019b623f43
8 changed files with 90 additions and 60 deletions

View File

@@ -68,7 +68,7 @@ namespace BlackMisc
if (this->m_parserWorker) { this->m_parserWorker->waitForFinished(); }
}
void CAircraftModelLoaderXPlane::startLoadingFromDisk(LoadMode mode, const CAircraftModelList &dbModels)
void CAircraftModelLoaderXPlane::startLoadingFromDisk(LoadMode mode, const ModelConsolidation &modelConsolidation)
{
//! \todo according to meeting XP needs to support multiple directories
const CSimulatorInfo simulator = this->getSimulator();
@@ -86,10 +86,10 @@ namespace BlackMisc
{
if (m_parserWorker && !m_parserWorker->isFinished()) { return; }
m_parserWorker = BlackMisc::CWorker::fromTask(this, "CAircraftModelLoaderXPlane::performParsing",
[this, modelDirectory, excludedDirectoryPatterns, dbModels]()
[this, modelDirectory, excludedDirectoryPatterns, modelConsolidation]()
{
auto models = performParsing(modelDirectory, excludedDirectoryPatterns);
CAircraftModelUtilities::mergeWithDbData(models, dbModels);
if (modelConsolidation) { modelConsolidation(models, true); }
return models;
});
m_parserWorker->thenWithResult<CAircraftModelList>(this, [this](const auto & models)
@@ -100,7 +100,6 @@ namespace BlackMisc
else if (mode.testFlag(LoadDirectly))
{
CAircraftModelList models(performParsing(this->getFirstModelDirectoryOrDefault(), excludedDirectoryPatterns));
CAircraftModelUtilities::mergeWithDbData(models, dbModels);
updateInstalledModels(models);
}
}

View File

@@ -60,7 +60,7 @@ namespace BlackMisc
protected:
//! \name Interface functions
//! @{
virtual void startLoadingFromDisk(LoadMode mode, const BlackMisc::Simulation::CAircraftModelList &dbModels) override;
virtual void startLoadingFromDisk(LoadMode mode, const ModelConsolidation &modelConsolidation) override;
//! @}
private: