20 #ifndef RIPPLE_APP_PEERS_PEERSET_H_INCLUDED
21 #define RIPPLE_APP_PEERS_PEERSET_H_INCLUDED
23 #include <ripple/app/main/Application.h>
24 #include <ripple/beast/clock/abstract_clock.h>
25 #include <ripple/beast/utility/Journal.h>
26 #include <ripple/overlay/Peer.h>
27 #include <ripple/overlay/impl/ProtocolMessage.h>
28 #include <boost/asio/basic_waitable_timer.hpp>
62 template <
typename MessageType>
71 ::google::protobuf::Message
const& message,
72 protocol::MessageType type,
std::unique_ptr< PeerSet > make_DummyPeerSet(Application &app)
Make a dummy PeerSet that does not do anything.
virtual const std::set< Peer::id_t > & getPeerIds() const =0
get the set of ids of previously added peers
void sendRequest(MessageType const &message, std::shared_ptr< Peer > const &peer)
send a message
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.
virtual ~PeerSet()=default
protocol::MessageType protocolMessageType(protocol::TMGetLedger const &)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::unique_ptr< PeerSetBuilder > make_PeerSetBuilder(Application &app)
Supports data retrieval by managing a set of peers.
virtual std::unique_ptr< PeerSet > build()=0
virtual ~PeerSetBuilder()=default