colnod-connector/src/colnod/syncmanager.h
2019-12-09 15:34:29 +01:00

42 lines
1.0 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);
private:
void initNewToken(const std::shared_ptr<Token>& token);
private:
std::shared_ptr<ColnodAPI> colnod;
std::shared_ptr<DatabaseAPI> database;
serversdk::RequestManager reqMan;
serversdk::DatabaseManager dbMan;
Timestamp mlastSync;
bool mDryMode;
};