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