Line data Source code
1 : // Copyright (c) 2025 The Dash Core developers 2 : // Distributed under the MIT software license, see the accompanying 3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : 5 : #ifndef BITCOIN_GOVERNANCE_NET_GOVERNANCE_H 6 : #define BITCOIN_GOVERNANCE_NET_GOVERNANCE_H 7 : 8 : #include <net_processing.h> 9 : 10 : class CGovernanceManager; 11 : class CMasternodeSync; 12 : class CNetFulfilledRequestManager; 13 : 14 : class NetGovernance final : public NetHandler 15 : { 16 : public: 17 5714 : NetGovernance(PeerManagerInternal* peer_manager, CGovernanceManager& gov_manager, CMasternodeSync& node_sync, CNetFulfilledRequestManager& netfulfilledman, 18 : CConnman& connman) : 19 2857 : NetHandler(peer_manager), 20 2857 : m_gov_manager(gov_manager), 21 2857 : m_node_sync(node_sync), 22 2857 : m_netfulfilledman(netfulfilledman), 23 2857 : m_connman(connman) 24 5714 : { 25 5714 : } 26 : void Schedule(CScheduler& scheduler) override; 27 : 28 : void ProcessMessage(CNode& peer, const std::string& msg_type, CDataStream& vRecv) override; 29 : 30 : bool AlreadyHave(const CInv& inv) override; 31 : bool ProcessGetData(CNode& pfrom, const CInv& inv, CConnman& connman, const CNetMsgMaker& msgMaker) override; 32 : 33 : private: 34 : CGovernanceManager& m_gov_manager; 35 : CMasternodeSync& m_node_sync; 36 : CNetFulfilledRequestManager& m_netfulfilledman; 37 : CConnman& m_connman; 38 : }; 39 : 40 : #endif // BITCOIN_GOVERNANCE_NET_GOVERNANCE_H