#pragma once #include "requestmanager.h" #include "datamanager.h" #include "logger.h" class SyncManager : public QObject { Q_OBJECT public: explicit SyncManager(bool dryMode = false); void syncDataFromColnodToDB(); void syncDataFromDBToColnod(); void prepareDatabase(); public slots: void loadDataFromColnod(); void loadDataFromDB(); signals: void dataDownloaded(); 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 reqMan; std::unique_ptr dataMan; bool dryMode = false; bool updateFinished = false; bool deleteFinished = false; int dataCounter = 0; };