colnod-connector/src/colnod/syncmanager.h
Ondřej Fischer a8bcfc7f18 fix build
2019-11-27 08:50:26 +01: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 init();
bool run();
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;
};