xrpld
Loading...
Searching...
No Matches
xrpl::test::TestPeerSet Struct Reference

Simulate a peerSet that supplies peers to ledger replay subtasks. More...

Inheritance diagram for xrpl::test::TestPeerSet:
Collaboration diagram for xrpl::test::TestPeerSet:

Public Member Functions

 TestPeerSet (LedgerReplayMsgHandler &me, LedgerReplayMsgHandler &other, PeerSetBehavior bhvr, bool enableLedgerReplay)
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 &msg, protocol::MessageType type, std::shared_ptr< Peer > const &peer) override
std::set< Peer::id_t > const & getPeerIds () const override
 get the set of ids of previously added peers
template<typename MessageType>
void sendRequest (MessageType const &message, std::shared_ptr< Peer > const &peer)
 send a message

Public Attributes

LedgerReplayMsgHandlerlocal
LedgerReplayMsgHandlerremote
std::shared_ptr< TestPeerdummyPeer
PeerSetBehavior behavior

Detailed Description

Simulate a peerSet that supplies peers to ledger replay subtasks.

It connects the ledger replay client side and server side message handlers. Depending on the configured PeerSetBehavior, it may drop or repeat some of the messages.

Definition at line 371 of file LedgerReplay_test.cpp.

Constructor & Destructor Documentation

◆ TestPeerSet()

xrpl::test::TestPeerSet::TestPeerSet ( LedgerReplayMsgHandler & me,
LedgerReplayMsgHandler & other,
PeerSetBehavior bhvr,
bool enableLedgerReplay )

Definition at line 373 of file LedgerReplay_test.cpp.

Member Function Documentation

◆ addPeers()

void xrpl::test::TestPeerSet::addPeers ( std::size_t limit,
std::function< bool(std::shared_ptr< Peer > const &)> hasItem,
std::function< void(std::shared_ptr< Peer > const &)> onPeerAdded )
overridevirtual

Try add more peers.

Parameters
limitnumber of peers to add
hasItemcallback that helps to select peers
onPeerAddedcallback called when a peer is added

Implements xrpl::PeerSet.

Definition at line 386 of file LedgerReplay_test.cpp.

◆ sendRequest() [1/2]

void xrpl::test::TestPeerSet::sendRequest ( ::google::protobuf::Message const & msg,
protocol::MessageType type,
std::shared_ptr< Peer > const & peer )
overridevirtual

Implements xrpl::PeerSet.

Definition at line 396 of file LedgerReplay_test.cpp.

◆ getPeerIds()

std::set< Peer::id_t > const & xrpl::test::TestPeerSet::getPeerIds ( ) const
nodiscardoverridevirtual

get the set of ids of previously added peers

Implements xrpl::PeerSet.

Definition at line 446 of file LedgerReplay_test.cpp.

◆ sendRequest() [2/2]

template<typename MessageType>
void xrpl::PeerSet::sendRequest ( MessageType const & message,
std::shared_ptr< Peer > const & peer )
inherited

send a message

Definition at line 39 of file PeerSet.h.

Member Data Documentation

◆ local

LedgerReplayMsgHandler& xrpl::test::TestPeerSet::local

Definition at line 452 of file LedgerReplay_test.cpp.

◆ remote

LedgerReplayMsgHandler& xrpl::test::TestPeerSet::remote

Definition at line 453 of file LedgerReplay_test.cpp.

◆ dummyPeer

std::shared_ptr<TestPeer> xrpl::test::TestPeerSet::dummyPeer

Definition at line 454 of file LedgerReplay_test.cpp.

◆ behavior

PeerSetBehavior xrpl::test::TestPeerSet::behavior

Definition at line 455 of file LedgerReplay_test.cpp.