colnod-connector/src/colnod/syncmanager.h
Ondřej Fischer c5cff0f216 Merge branch 'transform-app-using-serversdk' into 'suggest/different-approach'
# Conflicts:
#   src/colnod/databaseapi.cpp
#   src/colnod/databaseapi.h
#   src/colnod/syncmanager.cpp
#   src/colnod/syncmanager.h
2019-11-27 11:34:48 +00:00

54 lines
1.1 KiB
C++

#pragma once
#include "colnodapi.h"
#include "databaseapi.h"
Q_DECLARE_LOGGING_CATEGORY(syncmanager)
class SyncManager : public QObject
{
Q_OBJECT
public:
explicit SyncManager(bool dryMode);
bool databaseInitialization();
bool startSynchronization();
private:
bool downloadData();
bool prepareData();
bool processData();
void updateLastUpdate(qint64 syncBegin);
private:
Q_SLOT void saveColnodData(const std::shared_ptr<Data> &data);
Q_SLOT void saveDatabaseData(const std::shared_ptr<Data> &data);
Q_SLOT void areDataReady();
signals:
void dataReady();
void dataProcessFinished();
void syncFinished();
void error();
private:
std::shared_ptr<ColnodAPI> colnod;
std::shared_ptr<DatabaseAPI> database;
serversdk::RequestManager reqMan;
serversdk::DatabaseManager dbMan;
Timestamp mlastSync;
std::shared_ptr<Data> colnodData;
std::shared_ptr<Data> databaseData;
std::shared_ptr<Data> colnodDataToProcess;
std::shared_ptr<Data> databaseDataToProcess;
int dataAmount = 0;
bool mDryMode;
std::function<void()> onError = nullptr;
};