| 
    rippled
    
   | 
 
This class manages established peer-to-peer connections, handles message exchange, monitors connection health, and graceful shutdown. More...
#include <PeerImp.h>


Classes | |
| struct | ChargeWithContext | 
| class | Metrics | 
Public Types | |
| enum class | Tracking { diverged , unknown , converged } | 
| Whether the peer's view of the ledger converges or diverges from ours.  More... | |
| using | ptr = std::shared_ptr< Peer > | 
| using | id_t = std::uint32_t | 
| Uniquely identifies a peer.   | |
Public Member Functions | |
| PeerImp (PeerImp const &)=delete | |
| PeerImp & | operator= (PeerImp const &)=delete | 
| PeerImp (Application &app, id_t id, std::shared_ptr< PeerFinder::Slot > const &slot, http_request_type &&request, PublicKey const &publicKey, ProtocolVersion protocol, Resource::Consumer consumer, std::unique_ptr< stream_type > &&stream_ptr, OverlayImpl &overlay) | |
| Create an active incoming peer from an established ssl connection.   | |
| template<class Buffers > | |
| PeerImp (Application &app, std::unique_ptr< stream_type > &&stream_ptr, Buffers const &buffers, std::shared_ptr< PeerFinder::Slot > &&slot, http_response_type &&response, Resource::Consumer usage, PublicKey const &publicKey, ProtocolVersion protocol, id_t id, OverlayImpl &overlay) | |
| Create outgoing, handshaked peer.   | |
| virtual | ~PeerImp () | 
| beast::Journal const & | pjournal () const | 
| std::shared_ptr< PeerFinder::Slot > const & | slot () | 
| virtual void | run () | 
| void | stop () override | 
| void | send (std::shared_ptr< Message > const &m) override | 
| void | sendTxQueue () override | 
| Send aggregated transactions' hashes.   | |
| void | addTxQueue (uint256 const &hash) override | 
| Add transaction's hash to the transactions' hashes queue.   | |
| void | removeTxQueue (uint256 const &hash) override | 
| Remove transaction's hash from the transactions' hashes queue.   | |
| template<class FwdIt , class = typename std::enable_if_t<std::is_same< typename std::iterator_traits<FwdIt>::value_type, PeerFinder::Endpoint>::value>> | |
| void | sendEndpoints (FwdIt first, FwdIt last) | 
| Send a set of PeerFinder endpoints as a protocol message.   | |
| beast::IP::Endpoint | getRemoteAddress () const override | 
| void | charge (Resource::Charge const &fee, std::string const &context) override | 
| Adjust this peer's load balance based on the type of load imposed.   | |
| Peer::id_t | id () const override | 
| bool | crawl () const | 
Returns true if this connection will publicly share its IP address.   | |
| bool | cluster () const override | 
Returns true if this connection is a member of the cluster.   | |
| void | checkTracking (std::uint32_t validationSeq) | 
| Check if the peer is tracking.   | |
| void | checkTracking (std::uint32_t seq1, std::uint32_t seq2) | 
| PublicKey const & | getNodePublic () const override | 
| std::string | getVersion () const | 
| Return the version of rippled that the peer is running, if reported.   | |
| clock_type::duration | uptime () const | 
| Json::Value | json () override | 
| bool | supportsFeature (ProtocolFeature f) const override | 
| std::optional< std::size_t > | publisherListSequence (PublicKey const &pubKey) const override | 
| void | setPublisherListSequence (PublicKey const &pubKey, std::size_t const seq) override | 
| uint256 const & | getClosedLedgerHash () const override | 
| bool | hasLedger (uint256 const &hash, std::uint32_t seq) const override | 
| void | ledgerRange (std::uint32_t &minSeq, std::uint32_t &maxSeq) const override | 
| bool | hasTxSet (uint256 const &hash) const override | 
| void | cycleStatus () override | 
| bool | hasRange (std::uint32_t uMin, std::uint32_t uMax) override | 
| int | getScore (bool haveItem) const override | 
| bool | isHighLatency () const override | 
| bool | compressionEnabled () const override | 
| bool | txReduceRelayEnabled () const override | 
| void | onMessageUnknown (std::uint16_t type) | 
| void | onMessageBegin (std::uint16_t type, std::shared_ptr<::google::protobuf::Message > const &m, std::size_t size, std::size_t uncompressed_size, bool isCompressed) | 
| void | onMessageEnd (std::uint16_t type, std::shared_ptr<::google::protobuf::Message > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMManifests > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMPing > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMCluster > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMEndpoints > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMTransaction > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMGetLedger > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMLedgerData > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMProposeSet > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMStatusChange > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMHaveTransactionSet > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMValidatorList > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMValidatorListCollection > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMValidation > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMGetObjectByHash > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMHaveTransactions > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMTransactions > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMSquelch > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMProofPathRequest > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMProofPathResponse > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMReplayDeltaRequest > const &m) | 
| void | onMessage (std::shared_ptr< protocol::TMReplayDeltaResponse > const &m) | 
| T | shared_from_this (T... args) | 
| T | weak_from_this (T... args) | 
Private Types | |
| using | clock_type = std::chrono::steady_clock | 
| using | error_code = boost::system::error_code | 
| using | socket_type = boost::asio::ip::tcp::socket | 
| using | middle_type = boost::beast::tcp_stream | 
| using | stream_type = boost::beast::ssl_stream< middle_type > | 
| using | address_type = boost::asio::ip::address | 
| using | endpoint_type = boost::asio::ip::tcp::endpoint | 
| using | waitable_timer = boost::asio::basic_waitable_timer< std::chrono::steady_clock > | 
| using | Compressed = compression::Compressed | 
Private Member Functions | |
| void | fail (std::string const &name, error_code ec) | 
| Handles a failure associated with a specific error code.   | |
| void | fail (std::string const &reason) | 
| Handles a failure described by a reason string.   | |
| void | shutdown () | 
| Initiates the peer disconnection sequence.   | |
| void | tryAsyncShutdown () | 
| Attempts to perform a graceful SSL shutdown if conditions are met.   | |
| void | onShutdown (error_code ec) | 
| Handles the completion of the asynchronous SSL shutdown.   | |
| void | close () | 
| Forcibly closes the underlying socket connection.   | |
| void | setTimer (std::chrono::seconds interval) | 
| Sets and starts the peer timer.   | |
| void | onTimer (error_code const &ec) | 
| Handles the expiration of the peer activity timer.   | |
| void | cancelTimer () noexcept | 
| Cancels any pending wait on the peer activity timer.   | |
| void | doAccept () | 
| std::string | name () const | 
| std::string | domain () const | 
| void | doProtocolStart () | 
| void | onReadMessage (error_code ec, std::size_t bytes_transferred) | 
| void | onWriteMessage (error_code ec, std::size_t bytes_transferred) | 
| void | handleTransaction (std::shared_ptr< protocol::TMTransaction > const &m, bool eraseTxQueue, bool batch) | 
| Called from onMessage(TMTransaction(s)).   | |
| void | handleHaveTransactions (std::shared_ptr< protocol::TMHaveTransactions > const &m) | 
| Handle protocol message with hashes of transactions that have not been relayed by an upstream node down to its peers - request transactions, which have not been relayed to this peer.   | |
| std::string const & | fingerprint () const override | 
| std::string const & | prefix () const | 
| void | addLedger (uint256 const &hash, std::lock_guard< std::mutex > const &lockedRecentLock) | 
| void | doFetchPack (std::shared_ptr< protocol::TMGetObjectByHash > const &packet) | 
| void | onValidatorListMessage (std::string const &messageType, std::string const &manifest, std::uint32_t version, std::vector< ValidatorBlobInfo > const &blobs) | 
| void | doTransactions (std::shared_ptr< protocol::TMGetObjectByHash > const &packet) | 
| Process peer's request to send missing transactions.   | |
| void | checkTransaction (HashRouterFlags flags, bool checkSignature, std::shared_ptr< STTx const > const &stx, bool batch) | 
| void | checkPropose (bool isTrusted, std::shared_ptr< protocol::TMProposeSet > const &packet, RCLCxPeerPos peerPos) | 
| void | checkValidation (std::shared_ptr< STValidation > const &val, uint256 const &key, std::shared_ptr< protocol::TMValidation > const &packet) | 
| void | sendLedgerBase (std::shared_ptr< Ledger const > const &ledger, protocol::TMLedgerData &ledgerData) | 
| std::shared_ptr< Ledger const > | getLedger (std::shared_ptr< protocol::TMGetLedger > const &m) | 
| std::shared_ptr< SHAMap const > | getTxSet (std::shared_ptr< protocol::TMGetLedger > const &m) const | 
| void | processLedgerRequest (std::shared_ptr< protocol::TMGetLedger > const &m) | 
Static Private Member Functions | |
| static std::string | makePrefix (std::string const &fingerprint) | 
Friends | |
| class | OverlayImpl | 
This class manages established peer-to-peer connections, handles message exchange, monitors connection health, and graceful shutdown.
The PeerImp shutdown mechanism is a multi-stage process designed to ensure graceful connection termination while handling ongoing I/O operations safely. The shutdown can be initiated from multiple points and follows a deterministic state machine.
The shutdown process can be triggered from several entry points:
stop() method called by overlay managementfail(error_code) or fail(string) on protocol violationsThe shutdown follows this progression:
Normal Operation → shutdown() → tryAsyncShutdown() → onShutdown() → close() ↓ ↓ ↓ ↓ Set shutdown_ SSL graceful Timer cancel Socket close Cancel timer shutdown start & cleanup & metrics 5s safety timer Set shutdownStarted_ update
Two primary flags coordinate the shutdown process:
shutdown_: Set when shutdown is requestedshutdownStarted_: Set when SSL shutdown beginsThe shutdown mechanism carefully coordinates with ongoing read/write operations:
**Read Operations (onReadMessage)**:
shutdown_ flag after processing each message batchtryAsyncShutdown()**Write Operations (onWriteMessage)**:
shutdown_ flag before queuing new writestryAsyncShutdown() when shutdown flag detectedMultiple timers require coordination during shutdown:
shutdown()The shutdown implements fallback mechanisms:
All shutdown operations are serialized through the boost::asio::strand to ensure thread safety. The strand guarantees that shutdown state changes and I/O operation callbacks are executed sequentially.
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  inherited | 
Definition at line 46 of file xrpld/overlay/Peer.h.
      
  | 
  inherited | 
Uniquely identifies a peer.
This can be stored in tables to find the peer later. Callers can discover if the peer is no longer connected and make adjustments as needed.
Definition at line 53 of file xrpld/overlay/Peer.h.
      
  | 
  strong | 
      
  | 
  delete | 
| ripple::PeerImp::PeerImp | ( | Application & | app, | 
| id_t | id, | ||
| std::shared_ptr< PeerFinder::Slot > const & | slot, | ||
| http_request_type && | request, | ||
| PublicKey const & | publicKey, | ||
| ProtocolVersion | protocol, | ||
| Resource::Consumer | consumer, | ||
| std::unique_ptr< stream_type > && | stream_ptr, | ||
| OverlayImpl & | overlay | ||
| ) | 
Create an active incoming peer from an established ssl connection.
Definition at line 72 of file PeerImp.cpp.
| ripple::PeerImp::PeerImp | ( | Application & | app, | 
| std::unique_ptr< stream_type > && | stream_ptr, | ||
| Buffers const & | buffers, | ||
| std::shared_ptr< PeerFinder::Slot > && | slot, | ||
| http_response_type && | response, | ||
| Resource::Consumer | usage, | ||
| PublicKey const & | publicKey, | ||
| ProtocolVersion | protocol, | ||
| id_t | id, | ||
| OverlayImpl & | overlay | ||
| ) | 
      
  | 
  virtual | 
Definition at line 140 of file PeerImp.cpp.
| beast::Journal const & ripple::PeerImp::pjournal | ( | ) | const | 
| std::shared_ptr< PeerFinder::Slot > const & ripple::PeerImp::slot | ( | ) | 
      
  | 
  virtual | 
Reimplemented in ripple::test::tx_reduce_relay_test::PeerTest.
Definition at line 163 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::OverlayImpl::Child.
Definition at line 221 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Reimplemented in ripple::test::tx_reduce_relay_test::PeerTest.
Definition at line 241 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Send aggregated transactions' hashes.
Implements ripple::Peer.
Definition at line 308 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Add transaction's hash to the transactions' hashes queue.
| hash | transaction's hash | 
Implements ripple::Peer.
Reimplemented in ripple::test::tx_reduce_relay_test::PeerTest.
Definition at line 327 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Remove transaction's hash from the transactions' hashes queue.
| hash | transaction's hash | 
Implements ripple::Peer.
Definition at line 344 of file PeerImp.cpp.
| void ripple::PeerImp::sendEndpoints | ( | FwdIt | first, | 
| FwdIt | last | ||
| ) | 
Send a set of PeerFinder endpoints as a protocol message.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
      
  | 
  overridevirtual | 
Adjust this peer's load balance based on the type of load imposed.
Implements ripple::Peer.
Definition at line 356 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
| bool ripple::PeerImp::crawl | ( | ) | const | 
Returns true if this connection will publicly share its IP address. 
Definition at line 370 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Returns true if this connection is a member of the cluster. 
Implements ripple::Peer.
Definition at line 379 of file PeerImp.cpp.
| void ripple::PeerImp::checkTracking | ( | std::uint32_t | validationSeq | ) | 
Check if the peer is tracking.
| validationSeq | The ledger sequence of a recently-validated ledger | 
Definition at line 2066 of file PeerImp.cpp.
| void ripple::PeerImp::checkTracking | ( | std::uint32_t | seq1, | 
| std::uint32_t | seq2 | ||
| ) | 
Definition at line 2085 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
| std::string ripple::PeerImp::getVersion | ( | ) | const | 
Return the version of rippled that the peer is running, if reported.
Definition at line 385 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 393 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 511 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 528 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 543 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 552 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 560 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 570 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 3563 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
Definition at line 3601 of file PeerImp.cpp.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
      
  | 
  overridevirtual | 
Implements ripple::Peer.
      
  | 
  private | 
Handles a failure associated with a specific error code.
This function is called when an operation fails with an error code. It logs the warning message and gracefully shutdowns the connection.
The function will do nothing if the connection is already closed or if a shutdown is already in progress.
| name | The name of the operation that failed (e.g., "read", "write"). | 
| ec | The error code associated with the failure. | 
Definition at line 580 of file PeerImp.cpp.
      
  | 
  private | 
Handles a failure described by a reason string.
This overload is used for logical errors or protocol violations not associated with a specific error code. It logs a warning with the given reason, then initiates a graceful shutdown.
The function will do nothing if the connection is already closed or if a shutdown is already in progress.
| reason | A descriptive string explaining the reason for the failure. | 
Definition at line 595 of file PeerImp.cpp.
      
  | 
  private | 
Initiates the peer disconnection sequence.
This is the primary entry point to start closing a peer connection. It marks the peer for shutdown and cancels any outstanding asynchronous operations. This cancellation allows the graceful shutdown to proceed once the handlers for the cancelled operations have completed.
Definition at line 643 of file PeerImp.cpp.
      
  | 
  private | 
Attempts to perform a graceful SSL shutdown if conditions are met.
This helper function checks if the peer is in a state where a graceful SSL shutdown can be performed (i.e., shutdown has been requested and no I/O operations are currently in progress).
Definition at line 619 of file PeerImp.cpp.
      
  | 
  private | 
Handles the completion of the asynchronous SSL shutdown.
This function is the callback for the async_shutdown operation started in shutdown(). Its first action is to cancel the timer. It then inspects the error code to determine the outcome.
Regardless of the result, this function proceeds to call close() to ensure the underlying socket is fully closed.
| ec | The error code resulting from the async_shutdown operation.  | 
Definition at line 660 of file PeerImp.cpp.
      
  | 
  private | 
Forcibly closes the underlying socket connection.
This function provides the final, non-graceful shutdown of the peer connection. It ensures any pending timers are cancelled and then immediately closes the TCP socket, bypassing the SSL shutdown handshake.
After closing, it notifies the overlay manager of the disconnection.
Definition at line 686 of file PeerImp.cpp.
      
  | 
  private | 
Sets and starts the peer timer.
This function starts timer, which is used to detect inactivity and prevent stalled connections. It sets the timer to expire after the predefined peerTimerInterval.
Definition at line 712 of file PeerImp.cpp.
      
  | 
  private | 
Handles the expiration of the peer activity timer.
This callback is invoked when the timer set by setTimer expires. It watches the peer connection, checking for various timeout and health conditions.
| ec | The error code associated with the timer's expiration. operation_aborted is expected if the timer was cancelled.  | 
Definition at line 741 of file PeerImp.cpp.
      
  | 
  privatenoexcept | 
Cancels any pending wait on the peer activity timer.
This function is called to stop the timer. It gracefully manages any errors that might occur during the cancellation process.
Definition at line 808 of file PeerImp.cpp.
      
  | 
  staticprivate | 
Definition at line 733 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 822 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 892 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 899 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 909 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 951 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 1042 of file PeerImp.cpp.
      
  | 
  private | 
Called from onMessage(TMTransaction(s)).
| m | Transaction protocol message | 
| eraseTxQueue | is true when called from onMessage(TMTransaction) and is false when called from onMessage(TMTransactions). If true then the transaction hash is erased from txQueue_. Don't need to erase from the queue when called from onMessage(TMTransactions) because this message is a response to the missing transactions request and the queue would not have any of these transactions. | 
| batch | is false when called from onMessage(TMTransaction) and is true when called from onMessage(TMTransactions). If true, then the transaction is part of a batch, and should not be charged an extra fee. | 
Definition at line 1358 of file PeerImp.cpp.
      
  | 
  private | 
Handle protocol message with hashes of transactions that have not been relayed by an upstream node down to its peers - request transactions, which have not been relayed to this peer.
| m | protocol message with transactions' hashes | 
Definition at line 2710 of file PeerImp.cpp.
      
  | 
  overrideprivatevirtual | 
Implements ripple::Peer.
      
  | 
  private | 
| void ripple::PeerImp::onMessageUnknown | ( | std::uint16_t | type | ) | 
Definition at line 1108 of file PeerImp.cpp.
| void ripple::PeerImp::onMessageBegin | ( | std::uint16_t | type, | 
| std::shared_ptr<::google::protobuf::Message > const & | m, | ||
| std::size_t | size, | ||
| std::size_t | uncompressed_size, | ||
| bool | isCompressed | ||
| ) | 
Definition at line 1114 of file PeerImp.cpp.
| void ripple::PeerImp::onMessageEnd | ( | std::uint16_t | type, | 
| std::shared_ptr<::google::protobuf::Message > const & | m | ||
| ) | 
Definition at line 1157 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMManifests > const & | m | ) | 
Definition at line 1166 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMPing > const & | m | ) | 
Definition at line 1186 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMCluster > const & | m | ) | 
Definition at line 1223 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMEndpoints > const & | m | ) | 
Definition at line 1295 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMTransaction > const & | m | ) | 
Definition at line 1352 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMGetLedger > const & | m | ) | 
Definition at line 1480 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMLedgerData > const & | m | ) | 
Definition at line 1679 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMProposeSet > const & | m | ) | 
Definition at line 1770 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMStatusChange > const & | m | ) | 
Definition at line 1891 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMHaveTransactionSet > const & | m | ) | 
Definition at line 2107 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMValidatorList > const & | m | ) | 
Definition at line 2342 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMValidatorListCollection > const & | m | ) | 
Definition at line 2370 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMValidation > const & | m | ) | 
Definition at line 2410 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMGetObjectByHash > const & | m | ) | 
Definition at line 2535 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMHaveTransactions > const & | m | ) | 
Definition at line 2691 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMTransactions > const & | m | ) | 
Definition at line 2760 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMSquelch > const & | m | ) | 
Definition at line 2784 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMProofPathRequest > const & | m | ) | 
Definition at line 1569 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMProofPathResponse > const & | m | ) | 
Definition at line 1608 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMReplayDeltaRequest > const & | m | ) | 
Definition at line 1624 of file PeerImp.cpp.
| void ripple::PeerImp::onMessage | ( | std::shared_ptr< protocol::TMReplayDeltaResponse > const & | m | ) | 
Definition at line 1663 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 2830 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 2846 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 2133 of file PeerImp.cpp.
      
  | 
  private | 
Process peer's request to send missing transactions.
The request is sent in response to TMHaveTransactions.
| packet | protocol message containing missing transactions' hashes. | 
Definition at line 2880 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 2935 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 3073 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 3116 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 3213 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 3253 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 3349 of file PeerImp.cpp.
      
  | 
  private | 
Definition at line 3384 of file PeerImp.cpp.
      
  | 
  friend | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  mutableprivate | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  mutableprivate | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
| struct { ... } ripple::PeerImp::metrics_ |