xrpld
Loading...
Searching...
No Matches
xrpl::test::OverlaySim Class Reference
Inheritance diagram for xrpl::test::OverlaySim:
Collaboration diagram for xrpl::test::OverlaySim:

Public Types

using id_t = Peer::id_t
using clock_type = ManualClock

Public Member Functions

 OverlaySim (Application &app)
 ~OverlaySim () override=default
void clear ()
std::uint16_t inState (PublicKey const &validator, reduce_relay::PeerState state)
void updateSlotAndSquelch (uint256 const &key, PublicKey const &validator, Peer::id_t id, SquelchCB f, protocol::MessageType type=protocol::mtVALIDATION) override
void deletePeer (id_t id, UnsquelchCB f) override
void deleteIdlePeers (UnsquelchCB f) override
PeerSPtr addPeer (bool useCache=true)
void deletePeer (Peer::id_t id, bool useCache=true)
void resetPeers ()
std::optional< Peer::id_tdeleteLastPeer ()
bool isCountingState (PublicKey const &validator)
std::set< id_tgetSelected (PublicKey const &validator)
bool isSelected (PublicKey const &validator, Peer::id_t peer)
id_t getSelectedPeer (PublicKey const &validator)
std::unordered_map< id_t, std::tuple< reduce_relay::PeerState, std::uint16_t, std::uint32_t, std::uint32_t > > getPeers (PublicKey const &validator)
std::uint16_t getNumPeers () const

Private Types

using Peers = std::unordered_map<Peer::id_t, PeerSPtr>

Private Member Functions

void squelch (PublicKey const &validator, Peer::id_t id, std::uint32_t squelchDuration) const override
 Squelch handler.
void unsquelch (PublicKey const &validator, Peer::id_t id) const override
 Unsquelch handler.

Private Attributes

SquelchCB squelch_
UnsquelchCB unsquelch_
Peers peers_
Peers peersCache_
reduce_relay::Slots< ManualClockslots_
ServiceRegistryregistry_

Detailed Description

Definition at line 520 of file reduce_relay_test.cpp.

Member Typedef Documentation

◆ Peers

◆ id_t

◆ clock_type

Constructor & Destructor Documentation

◆ OverlaySim()

xrpl::test::OverlaySim::OverlaySim ( Application & app)

Definition at line 527 of file reduce_relay_test.cpp.

◆ ~OverlaySim()

xrpl::test::OverlaySim::~OverlaySim ( )
overridedefault

Member Function Documentation

◆ clear()

void xrpl::test::OverlaySim::clear ( )

Definition at line 534 of file reduce_relay_test.cpp.

◆ inState()

std::uint16_t xrpl::test::OverlaySim::inState ( PublicKey const & validator,
reduce_relay::PeerState state )

Definition at line 542 of file reduce_relay_test.cpp.

◆ updateSlotAndSquelch()

void xrpl::test::OverlaySim::updateSlotAndSquelch ( uint256 const & key,
PublicKey const & validator,
Peer::id_t id,
SquelchCB f,
protocol::MessageType type = protocol::mtVALIDATION )
overridevirtual

Implements xrpl::test::Overlay.

Definition at line 549 of file reduce_relay_test.cpp.

◆ deletePeer() [1/2]

void xrpl::test::OverlaySim::deletePeer ( id_t id,
UnsquelchCB f )
overridevirtual

Implements xrpl::test::Overlay.

Definition at line 561 of file reduce_relay_test.cpp.

◆ deleteIdlePeers()

void xrpl::test::OverlaySim::deleteIdlePeers ( UnsquelchCB f)
overridevirtual

Implements xrpl::test::Overlay.

Definition at line 568 of file reduce_relay_test.cpp.

◆ addPeer()

PeerSPtr xrpl::test::OverlaySim::addPeer ( bool useCache = true)

Definition at line 575 of file reduce_relay_test.cpp.

◆ deletePeer() [2/2]

void xrpl::test::OverlaySim::deletePeer ( Peer::id_t id,
bool useCache = true )

Definition at line 596 of file reduce_relay_test.cpp.

◆ resetPeers()

void xrpl::test::OverlaySim::resetPeers ( )

Definition at line 607 of file reduce_relay_test.cpp.

◆ deleteLastPeer()

std::optional< Peer::id_t > xrpl::test::OverlaySim::deleteLastPeer ( )

Definition at line 616 of file reduce_relay_test.cpp.

◆ isCountingState()

bool xrpl::test::OverlaySim::isCountingState ( PublicKey const & validator)

Definition at line 635 of file reduce_relay_test.cpp.

◆ getSelected()

std::set< id_t > xrpl::test::OverlaySim::getSelected ( PublicKey const & validator)

Definition at line 641 of file reduce_relay_test.cpp.

◆ isSelected()

bool xrpl::test::OverlaySim::isSelected ( PublicKey const & validator,
Peer::id_t peer )

Definition at line 647 of file reduce_relay_test.cpp.

◆ getSelectedPeer()

id_t xrpl::test::OverlaySim::getSelectedPeer ( PublicKey const & validator)

Definition at line 654 of file reduce_relay_test.cpp.

◆ getPeers()

std::unordered_map< id_t, std::tuple< reduce_relay::PeerState, std::uint16_t, std::uint32_t, std::uint32_t > > xrpl::test::OverlaySim::getPeers ( PublicKey const & validator)

Definition at line 664 of file reduce_relay_test.cpp.

◆ getNumPeers()

std::uint16_t xrpl::test::OverlaySim::getNumPeers ( ) const

Definition at line 670 of file reduce_relay_test.cpp.

◆ squelch()

void xrpl::test::OverlaySim::squelch ( PublicKey const & validator,
Peer::id_t id,
std::uint32_t duration ) const
overrideprivatevirtual

Squelch handler.

Parameters
validatorPublic key of the source validator
idPeer's id to squelch
durationSquelch duration in seconds

Implements xrpl::reduce_relay::SquelchHandler.

Definition at line 677 of file reduce_relay_test.cpp.

◆ unsquelch()

void xrpl::test::OverlaySim::unsquelch ( PublicKey const & validator,
Peer::id_t id ) const
overrideprivatevirtual

Unsquelch handler.

Parameters
validatorPublic key of the source validator
idPeer's id to unsquelch

Implements xrpl::reduce_relay::SquelchHandler.

Definition at line 683 of file reduce_relay_test.cpp.

Member Data Documentation

◆ squelch_

SquelchCB xrpl::test::OverlaySim::squelch_
private

Definition at line 688 of file reduce_relay_test.cpp.

◆ unsquelch_

UnsquelchCB xrpl::test::OverlaySim::unsquelch_
private

Definition at line 689 of file reduce_relay_test.cpp.

◆ peers_

Peers xrpl::test::OverlaySim::peers_
private

Definition at line 690 of file reduce_relay_test.cpp.

◆ peersCache_

Peers xrpl::test::OverlaySim::peersCache_
private

Definition at line 691 of file reduce_relay_test.cpp.

◆ slots_

reduce_relay::Slots<ManualClock> xrpl::test::OverlaySim::slots_
private

Definition at line 692 of file reduce_relay_test.cpp.

◆ registry_

ServiceRegistry& xrpl::test::OverlaySim::registry_
private

Definition at line 693 of file reduce_relay_test.cpp.