better way of handling error

This commit is contained in:
Ondřej Fischer 2019-11-07 13:49:37 +01:00
parent a324e390ae
commit a4f20f1c29
3 changed files with 10 additions and 15 deletions

View File

@ -16,12 +16,6 @@ int main(int argc, char *argv[])
parser.addOption(dryModeOption);
parser.process(app);
SyncManager api(parser.isSet(dryModeOption));
if (!api.isValid())
return 1;
QObject::connect(&api, &SyncManager::error, [](){
qDebug() << "error";
QCoreApplication::exit(1);
});
api.loadDataFromDB();
api.loadDataFromColnod();
QObject::connect(&api, &SyncManager::dataDownloaded, [&](){
@ -32,5 +26,9 @@ int main(int argc, char *argv[])
api.syncDataFromColnodToDB();
api.syncDataFromDBToColnod();
});
QObject::connect(&api, &SyncManager::error, &app, [](){
qDebug() << "error";
QCoreApplication::exit(1);
}, Qt::QueuedConnection);
return QCoreApplication::exec();
}

View File

@ -3,18 +3,14 @@
DataManager::DataManager(const bool &dryMode)
:dryMode(dryMode)
{
db = std::make_shared<DatabaseManager>("192.168.1.94", "deloitte", "postgres", "34rjkciea12", dryMode);
db = std::make_shared<DatabaseManager>("192.168.1.4", "deloitte", "postgres", "34rjkciea12", dryMode);
//db = std::make_shared<DatabaseManager>("localhost", "deloitte", "postgres", "34rjkciea12");
if (db->isOpen()){
Logger::setDBMan(db);
nextLastSync = db->getNow();
lastSync = db->getLastSync();
}
else {
emit error();
QCoreApplication::quit();
}
connect(db.get(), &DatabaseManager::error, this, &DataManager::error);
connect(db.get(), &DatabaseManager::error, this, &DataManager::error, Qt::QueuedConnection);
}
// load all tokens from colnod to comparing with working set from DB
@ -99,7 +95,8 @@ void DataManager::fillTokensToChangeDB()
qDebug() << "DB:" << tokensToUpdateFromDBToColnod.size() << "tokens to update";
qDebug() << "DB:" << tokensFromDBToDeleteFromColnod.size() << "tokens to delete";
}
else emit error();
else
emit error();
}
void DataManager::fillSubjectsToUpdateDB()

View File

@ -5,8 +5,8 @@ SyncManager::SyncManager(bool dryMode)
{
reqMan = std::make_unique<RequestManager>();
dataMan = std::make_unique<DataManager>(dryMode);
connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error);
connect(dataMan.get(), &DataManager::error, this, &SyncManager::error);
connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error, Qt::QueuedConnection);
connect(dataMan.get(), &DataManager::error, this, &SyncManager::error, Qt::QueuedConnection);
}
void SyncManager::loadDataFromColnod()