1#ifndef XRPL_APP_PEERS_PEERSET_H_INCLUDED
2#define XRPL_APP_PEERS_PEERSET_H_INCLUDED
4#include <xrpld/app/main/Application.h>
5#include <xrpld/overlay/Peer.h>
6#include <xrpld/overlay/detail/ProtocolMessage.h>
38 template <
typename MessageType>
47 ::google::protobuf::Message
const& message,
48 protocol::MessageType type,
virtual ~PeerSetBuilder()=default
virtual std::unique_ptr< PeerSet > build()=0
Supports data retrieval by managing a set of peers.
virtual std::set< Peer::id_t > const & getPeerIds() const =0
get the set of ids of previously added peers
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.
void sendRequest(MessageType const &message, std::shared_ptr< Peer > const &peer)
send a message
virtual void sendRequest(::google::protobuf::Message const &message, protocol::MessageType type, std::shared_ptr< Peer > const &peer)=0
virtual ~PeerSet()=default
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
protocol::MessageType protocolMessageType(protocol::TMGetLedger const &)
std::unique_ptr< PeerSet > make_DummyPeerSet(Application &app)
Make a dummy PeerSet that does not do anything.
std::unique_ptr< PeerSetBuilder > make_PeerSetBuilder(Application &app)