colnod-connector/src/colnod/syncmanager.h
2019-11-13 17:13:38 +01:00

113 lines
2.0 KiB
C++

#pragma once
#include "colnodapi.h"
#include "databaseapi.h"
#include "requestmanager.h"
#include "datamanager.h"
#include "logger.h"
#include "colnodapi.h"
#include "serversdk/databasemanager.h"
class SyncManager : public QObject
{
Q_OBJECT
// NEW
public:
bool init();
void run();
private:
void downloadData();
void prepareData();
void processData();
private:
Q_SLOTS void saveColnodData(std::shared_ptr<Data> data);
Q_SLOTS void saveDatabaseData(std::shared_ptr<Data> data);
Q_SLOTS void areDataReady();
signals:
void dataReady();
void processDataFinished();
private:
ColnodAPI colnod;
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;
// OLD
public:
explicit SyncManager(bool dryMode = false);
void syncDataFromColnodToDB();
void syncDataFromDBToColnod();
void dropTables();
void createTables();
bool isValid();
public slots:
void loadDataFromColnod();
void loadDataFromDB();
signals:
void dataReady();
void dataUpdatedToColnod();
void syncFinished();
void error();
private slots:
private:
void loadTokensFromColnod();
void loadUpdatedDataFromColnod();
void loadDeletedDataFromColnod();
void loadUpdatedDataFromDB();
void loadDeletedDataFromDB();
void syncUpdatedDataFromColnodToDB();
void syncDeletedDataFromColnodToDB();
void syncUpdatedDataFromDBToColnod();
void syncDeletedDataFromDBToColnod();
void areChangedDataReady();
void areDataUpdatedToColnod();
private:
// std::unique_ptr<RequestManager> reqMan;
std::unique_ptr<DataManager> dataMan;
bool dryMode = false;
bool updateFinished = false;
bool deleteFinished = false;
int dataCounter = 0;
};