#pragma once #include "colnodapi.h" #include "databaseapi.h" Q_DECLARE_LOGGING_CATEGORY(syncmanager) class SyncManager : public QObject { Q_OBJECT friend class SyncManagerTest; public: explicit SyncManager(bool dryMode); bool databaseInitialization(); bool startSynchronization(); // New approach private: /** * @brief Preapre data to be pushed to database and colnod from actual downloaded data * @param data from database * @param data from colnod * @return prepared data to be pushed into colnod and db * * @todo rename when removed old aproach */ std::unique_ptr prepareDataNew(const std::shared_ptr &databaseData, const std::shared_ptr &colnodData); std::unique_ptr prepareDataUsindOld(const std::shared_ptr &databaseData, const std::shared_ptr &colnodData); private: void initNewToken(const std::shared_ptr& token); void updateLastUpdate(qint64 syncBegin); signals: void syncFinished(); void error(); private: std::shared_ptr colnod; std::shared_ptr database; serversdk::RequestManager reqMan; serversdk::DatabaseManager dbMan; Timestamp mlastSync; bool mDryMode; };