colnod-connector/src/colnod/syncmanager.h
Filip Bucek 7e4a7bf074 Merge branch 'suggest/process-data' into suggest/preapre-data-use-old
# Conflicts:
#	src/colnod/databaseapi.cpp
#	src/colnod/databaseapi.h
#	src/colnod/syncmanager.cpp
#	src/colnod/syncmanager.h
#	test/auto/colnod/tst_colnodapi.cpp
#	test/auto/syncmanager/tst_syncmanager.cpp
2019-12-02 15:44:14 +01:00

50 lines
1.2 KiB
C++

#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<PreparedData> prepareDataNew(const std::shared_ptr<Data> &databaseData, const std::shared_ptr<Data> &colnodData);
std::unique_ptr<PreparedData> prepareDataUsindOld(const std::shared_ptr<Data> &databaseData, const std::shared_ptr<Data> &colnodData);
private:
void initNewToken(const std::shared_ptr<Token>& token);
void updateLastUpdate(qint64 syncBegin);
signals:
void syncFinished();
void error();
private:
std::shared_ptr<ColnodAPI> colnod;
std::shared_ptr<DatabaseAPI> database;
serversdk::RequestManager reqMan;
serversdk::DatabaseManager dbMan;
Timestamp mlastSync;
bool mDryMode;
};