forked from dashpay/dash
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsync_manager.h
More file actions
56 lines (48 loc) · 1.8 KB
/
sync_manager.h
File metadata and controls
56 lines (48 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Copyright (c) 2014-2025 The Dash Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_NODE_SYNC_MANAGER_H
#define BITCOIN_NODE_SYNC_MANAGER_H
#include <masternode/sync.h>
#include <net_processing.h>
class CGovernanceManager;
class CMasternodeSync;
class CNetFulfilledRequestManager;
class SyncManager final : public NetHandler
{
public:
SyncManager(PeerManagerInternal* peer_manager, CGovernanceManager& gov_manager, CMasternodeSync& node_sync, CConnman& connman,
CNetFulfilledRequestManager& netfulfilledman) :
NetHandler(peer_manager),
m_gov_manager(gov_manager),
m_node_sync(node_sync),
m_connman(connman),
m_netfulfilledman(netfulfilledman)
{
}
void Schedule(CScheduler& scheduler) override;
void ProcessMessage(CNode& peer, const std::string& msg_type, CDataStream& vRecv) override;
private:
void SendGovernanceSyncRequest(CNode* pnode) const;
void SendGovernanceObjectSyncRequest(CNode* pnode, const uint256& nHash, bool fUseFilter) const;
int RequestGovernanceObjectVotes(const std::vector<CNode*>& vNodesCopy) const;
void ProcessTick();
CGovernanceManager& m_gov_manager;
CMasternodeSync& m_node_sync;
CConnman& m_connman;
CNetFulfilledRequestManager& m_netfulfilledman;
};
class NodeSyncNotifierImpl : public NodeSyncNotifier
{
public:
NodeSyncNotifierImpl(CConnman& connman, CNetFulfilledRequestManager& netfulfilledman) :
m_connman(connman),
m_netfulfilledman(netfulfilledman)
{}
void SyncReset() override;
void SyncFinished() override;
private:
CConnman& m_connman;
CNetFulfilledRequestManager& m_netfulfilledman;
};
#endif // BITCOIN_NODE_SYNC_MANAGER_H