rippled
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ripple::test::csf::LedgerOracle Class Reference

Oracle maintaining unique ledgers for a simulation. More...

Public Member Functions

 LedgerOracle ()
 
std::optional< Ledgerlookup (Ledger::ID const &id) const
 Find the ledger with the given ID. More...
 
Ledger accept (Ledger const &curr, TxSetType const &txs, NetClock::duration closeTimeResolution, NetClock::time_point const &consensusCloseTime)
 Accept the given txs and generate a new ledger. More...
 
Ledger accept (Ledger const &curr, Tx tx)
 
std::size_t branches (std::set< Ledger > const &ledgers) const
 Determine the number of distinct branches for the set of ledgers. More...
 

Private Types

using InstanceMap = boost::bimaps::bimap< boost::bimaps::set_of< Ledger::Instance, ripple::less< Ledger::Instance > >, boost::bimaps::set_of< Ledger::ID, ripple::less< Ledger::ID > >>
 
using InstanceEntry = InstanceMap::value_type
 

Private Member Functions

Ledger::ID nextID () const
 

Private Attributes

InstanceMap instances_
 

Detailed Description

Oracle maintaining unique ledgers for a simulation.

Definition at line 244 of file ledgers.h.

Member Typedef Documentation

◆ InstanceMap

using ripple::test::csf::LedgerOracle::InstanceMap = boost::bimaps::bimap< boost::bimaps::set_of<Ledger::Instance, ripple::less<Ledger::Instance> >, boost::bimaps::set_of<Ledger::ID, ripple::less<Ledger::ID> >>
private

Definition at line 248 of file ledgers.h.

◆ InstanceEntry

using ripple::test::csf::LedgerOracle::InstanceEntry = InstanceMap::value_type
private

Definition at line 249 of file ledgers.h.

Constructor & Destructor Documentation

◆ LedgerOracle()

ripple::test::csf::LedgerOracle::LedgerOracle ( )

Definition at line 85 of file ledgers.cpp.

Member Function Documentation

◆ nextID()

Ledger::ID ripple::test::csf::LedgerOracle::nextID ( ) const
private

Definition at line 91 of file ledgers.cpp.

◆ lookup()

std::optional< Ledger > ripple::test::csf::LedgerOracle::lookup ( Ledger::ID const &  id) const

Find the ledger with the given ID.

Definition at line 129 of file ledgers.cpp.

◆ accept() [1/2]

Ledger ripple::test::csf::LedgerOracle::accept ( Ledger const &  curr,
TxSetType const &  txs,
NetClock::duration  closeTimeResolution,
NetClock::time_point const &  consensusCloseTime 
)

Accept the given txs and generate a new ledger.

Parameters
currThe current ledger
txsThe transactions to apply to the current ledger
closeTimeResolutionResolution used in determining close time
consensusCloseTimeThe consensus agreed close time, no valid time if 0

Definition at line 97 of file ledgers.cpp.

◆ accept() [2/2]

Ledger ripple::test::csf::LedgerOracle::accept ( Ledger const &  curr,
Tx  tx 
)

Definition at line 281 of file ledgers.h.

◆ branches()

std::size_t ripple::test::csf::LedgerOracle::branches ( std::set< Ledger > const &  ledgers) const

Determine the number of distinct branches for the set of ledgers.

Ledgers A and B are on different branches if A != B, A is not an ancestor of B and B is not an ancestor of A, e.g.

/--> A O --> B

Definition at line 140 of file ledgers.cpp.

Member Data Documentation

◆ instances_

InstanceMap ripple::test::csf::LedgerOracle::instances_
private

Definition at line 252 of file ledgers.h.