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

View File

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

View File

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