forked from ondra/colnod-connector
54 lines
1.1 KiB
C++
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;
|
|
};
|