rippled
Loading...
Searching...
No Matches
xrpld/overlay/Peer.h
1#ifndef XRPL_OVERLAY_PEER_H_INCLUDED
2#define XRPL_OVERLAY_PEER_H_INCLUDED
3
4#include <xrpld/overlay/Message.h>
5
6#include <xrpl/basics/base_uint.h>
7#include <xrpl/beast/net/IPEndpoint.h>
8#include <xrpl/json/json_value.h>
9#include <xrpl/protocol/PublicKey.h>
10
11namespace ripple {
12
13namespace Resource {
14class Charge;
15}
16
22
24class Peer
25{
26public:
28
35
36 virtual ~Peer() = default;
37
38 //
39 // Network
40 //
41
42 virtual void
44
46 getRemoteAddress() const = 0;
47
49 virtual void
51
53 virtual void
54 addTxQueue(uint256 const&) = 0;
55
57 virtual void
59
61 virtual void
62 charge(Resource::Charge const& fee, std::string const& context) = 0;
63
64 //
65 // Identity
66 //
67
68 virtual id_t
69 id() const = 0;
70
72 virtual bool
73 cluster() const = 0;
74
75 virtual bool
76 isHighLatency() const = 0;
77
78 virtual int
79 getScore(bool) const = 0;
80
81 virtual PublicKey const&
82 getNodePublic() const = 0;
83
84 virtual Json::Value
85 json() = 0;
86
87 virtual bool
89
92
93 virtual void
95
96 virtual std::string const&
97 fingerprint() const = 0;
98 //
99 // Ledger
100 //
101
102 virtual uint256 const&
104 virtual bool
105 hasLedger(uint256 const& hash, std::uint32_t seq) const = 0;
106 virtual void
107 ledgerRange(std::uint32_t& minSeq, std::uint32_t& maxSeq) const = 0;
108 virtual bool
109 hasTxSet(uint256 const& hash) const = 0;
110 virtual void
112 virtual bool
114
115 virtual bool
117
118 virtual bool
120};
121
122} // namespace ripple
123
124#endif
Represents a JSON value.
Definition json_value.h:131
A version-independent IP address and port combination.
Definition IPEndpoint.h:19
Represents a peer connection in the overlay.
virtual bool isHighLatency() const =0
virtual bool txReduceRelayEnabled() const =0
virtual ~Peer()=default
virtual bool supportsFeature(ProtocolFeature f) const =0
virtual int getScore(bool) const =0
virtual std::string const & fingerprint() 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
A public key.
Definition PublicKey.h:43
A consumption charge.
Definition Charge.h:11
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6