20#ifndef RIPPLE_OVERLAY_PEER_H_INCLUDED
21#define RIPPLE_OVERLAY_PEER_H_INCLUDED
23#include <xrpld/overlay/Message.h>
25#include <xrpl/basics/base_uint.h>
26#include <xrpl/beast/net/IPEndpoint.h>
27#include <xrpl/json/json_value.h>
28#include <xrpl/protocol/PublicKey.h>
A version-independent IP address and port combination.
Represents a peer connection in the overlay.
virtual bool isHighLatency() const =0
virtual bool txReduceRelayEnabled() const =0
virtual bool supportsFeature(ProtocolFeature f) const =0
virtual int getScore(bool) const =0
virtual beast::IP::Endpoint getRemoteAddress() const =0
virtual Json::Value json()=0
virtual void send(std::shared_ptr< Message > const &m)=0
virtual bool compressionEnabled() const =0
virtual void cycleStatus()=0
virtual std::optional< std::size_t > publisherListSequence(PublicKey const &) const =0
virtual bool hasLedger(uint256 const &hash, std::uint32_t seq) const =0
virtual bool cluster() const =0
Returns true if this connection is a member of the cluster.
virtual void addTxQueue(uint256 const &)=0
Aggregate transaction's hash.
virtual bool hasRange(std::uint32_t uMin, std::uint32_t uMax)=0
virtual void sendTxQueue()=0
Send aggregated transactions' hashes.
virtual PublicKey const & getNodePublic() const =0
virtual void ledgerRange(std::uint32_t &minSeq, std::uint32_t &maxSeq) const =0
virtual void removeTxQueue(uint256 const &)=0
Remove hash from the transactions' hashes queue.
virtual uint256 const & getClosedLedgerHash() const =0
virtual void setPublisherListSequence(PublicKey const &, std::size_t const)=0
virtual bool hasTxSet(uint256 const &hash) const =0
virtual void charge(Resource::Charge const &fee, std::string const &context)=0
Adjust this peer's load balance based on the type of load imposed.
virtual id_t id() const =0
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
@ ValidatorListPropagation
@ ValidatorList2Propagation