rippled
Public Member Functions | List of all members
ripple::PeerSet Class Referenceabstract

Supports data retrieval by managing a set of peers. More...

Inheritance diagram for ripple::PeerSet:
Inheritance graph
[legend]

Public Member Functions

virtual ~PeerSet ()=default
 
virtual void addPeers (std::size_t limit, std::function< bool(std::shared_ptr< Peer > const &)> hasItem, std::function< void(std::shared_ptr< Peer > const &)> onPeerAdded)=0
 Try add more peers. More...
 
template<typename MessageType >
void sendRequest (MessageType const &message, std::shared_ptr< Peer > const &peer)
 send a message More...
 
virtual void sendRequest (::google::protobuf::Message const &message, protocol::MessageType type, std::shared_ptr< Peer > const &peer)=0
 
virtual const std::set< Peer::id_t > & getPeerIds () const =0
 get the set of ids of previously added peers More...
 

Detailed Description

Supports data retrieval by managing a set of peers.

When desired data (such as a ledger or a transaction set) is missing locally it can be obtained by querying connected peers. This class manages common aspects of the retrieval. Callers maintain the set by adding and removing peers depending on whether the peers have useful information.

The data is represented by its hash.

Definition at line 44 of file PeerSet.h.

Constructor & Destructor Documentation

◆ ~PeerSet()

virtual ripple::PeerSet::~PeerSet ( )
virtualdefault

Member Function Documentation

◆ addPeers()

virtual void ripple::PeerSet::addPeers ( std::size_t  limit,
std::function< bool(std::shared_ptr< Peer > const &)>  hasItem,
std::function< void(std::shared_ptr< Peer > const &)>  onPeerAdded 
)
pure virtual

Try add more peers.

Parameters
limitnumber of peers to add
hasItemcallback that helps to select peers
onPeerAddedcallback called when a peer is added

Implemented in ripple::test::TestPeerSet, ripple::DummyPeerSet, and ripple::PeerSetImpl.

◆ sendRequest() [1/2]

template<typename MessageType >
void ripple::PeerSet::sendRequest ( MessageType const &  message,
std::shared_ptr< Peer > const &  peer 
)

send a message

Definition at line 64 of file PeerSet.h.

◆ sendRequest() [2/2]

virtual void ripple::PeerSet::sendRequest ( ::google::protobuf::Message const &  message,
protocol::MessageType  type,
std::shared_ptr< Peer > const &  peer 
)
pure virtual

◆ getPeerIds()

virtual const std::set<Peer::id_t>& ripple::PeerSet::getPeerIds ( ) const
pure virtual

get the set of ids of previously added peers

Implemented in ripple::test::TestPeerSet, ripple::DummyPeerSet, and ripple::PeerSetImpl.