refs #457 Use cases for CWorker non-void tasks and thenWithResult().

This commit is contained in:
Mathew Sutcliffe
2015-09-10 21:11:44 +01:00
parent 3cc9468d63
commit f50400bd94
3 changed files with 18 additions and 12 deletions

View File

@@ -48,11 +48,11 @@ namespace BlackMisc
{
bool ok;
auto aircraftCfgEntriesList = parseImpl(rootDirectory, excludedDirectories, &ok);
if (!ok) { return; }
bool c = QMetaObject::invokeMethod(this, "updateCfgEntriesList",
Q_ARG(BlackMisc::Simulation::FsCommon::CAircraftCfgEntriesList, aircraftCfgEntriesList));
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot invoke updateCfgEntriesList");
Q_UNUSED(c);
return std::make_pair(aircraftCfgEntriesList, ok);
});
m_parserWorker->thenWithResult<std::pair<CAircraftCfgEntriesList, bool>>(this, [this](const std::pair<CAircraftCfgEntriesList, bool> &pair)
{
if (pair.second) { this->updateCfgEntriesList(pair.first); }
});
}
else if (mode == ModeBlocking)