20#include <xrpld/app/main/Application.h> 
   21#include <xrpld/core/JobQueue.h> 
   22#include <xrpld/overlay/Overlay.h> 
   23#include <xrpld/overlay/PeerSet.h> 
   41        ::google::protobuf::Message 
const& message,
 
   42        protocol::MessageType type,
 
 
   59    : app_(app), journal_(app.journal(
"PeerSet"))
 
 
   76    overlay.foreach([&](
auto const& peer) {
 
   77        auto const score = peer->getScore(hasItem(peer));
 
   84        [](ScoredPeer 
const& lhs, ScoredPeer 
const& rhs) {
 
   85            return lhs.first > rhs.first;
 
   89    for (
auto const& pair : pairs)
 
   91        auto const peer = pair.second;
 
   92        if (!
peers_.insert(peer->id()).second)
 
 
  102    ::google::protobuf::Message 
const& message,
 
  103    protocol::MessageType type,
 
 
  162        JLOG(
j_.
error()) << 
"DummyPeerSet addPeers should not be called";
 
 
  167        ::google::protobuf::Message 
const& message,
 
  168        protocol::MessageType type,
 
  171        JLOG(
j_.
error()) << 
"DummyPeerSet sendRequest should not be called";
 
 
  178        JLOG(
j_.
error()) << 
"DummyPeerSet getPeerIds should not be called";
 
 
 
A generic endpoint for log messages.
 
virtual Overlay & overlay()=0
 
void addPeers(std::size_t limit, std::function< bool(std::shared_ptr< Peer > const &)> hasItem, std::function< void(std::shared_ptr< Peer > const &)> onPeerAdded) override
Try add more peers.
 
void sendRequest(::google::protobuf::Message const &message, protocol::MessageType type, std::shared_ptr< Peer > const &peer) override
 
DummyPeerSet(Application &app)
 
std::set< Peer::id_t > const & getPeerIds() const override
get the set of ids of previously added peers
 
virtual std::shared_ptr< Peer > findPeerByShortID(Peer::id_t const &id) const =0
Returns the peer with the matching short id, or null.
 
virtual std::unique_ptr< PeerSet > build() override
 
PeerSetBuilderImpl(Application &app)
 
PeerSetImpl(Application &app)
 
void addPeers(std::size_t limit, std::function< bool(std::shared_ptr< Peer > const &)> hasItem, std::function< void(std::shared_ptr< Peer > const &)> onPeerAdded) override
Try add more peers.
 
void sendRequest(::google::protobuf::Message const &message, protocol::MessageType type, std::shared_ptr< Peer > const &peer) override
Send a message to one or all peers.
 
std::set< Peer::id_t > peers_
The identifiers of the peers we are tracking.
 
std::set< Peer::id_t > const & getPeerIds() const override
get the set of ids of previously added peers
 
Supports data retrieval by managing a set of peers.
 
T emplace_back(T... args)
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
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)
 
@ accepted
Manifest is valid.