rippled
Classes | Public Types | Public Member Functions | Private Attributes | Friends | List of all members
ripple::RCLValidatedLedger Class Reference

Wraps a ledger instance for use in generic Validations LedgerTrie. More...

Collaboration diagram for ripple::RCLValidatedLedger:
Collaboration graph
[legend]

Classes

struct  MakeGenesis
 

Public Types

using ID = LedgerHash
 
using Seq = LedgerIndex
 

Public Member Functions

 RCLValidatedLedger (MakeGenesis)
 
 RCLValidatedLedger (std::shared_ptr< Ledger const > const &ledger, beast::Journal j)
 
Seq seq () const
 The sequence (index) of the ledger. More...
 
ID id () const
 The ID (hash) of the ledger. More...
 
ID operator[] (Seq const &s) const
 Lookup the ID of the ancestor ledger. More...
 
Seq minSeq () const
 

Private Attributes

ID ledgerID_
 
Seq ledgerSeq_
 
std::vector< uint256ancestors_
 
beast::Journal j_
 

Friends

Seq mismatch (RCLValidatedLedger const &a, RCLValidatedLedger const &b)
 Find the sequence number of the earliest mismatching ancestor. More...
 

Detailed Description

Wraps a ledger instance for use in generic Validations LedgerTrie.

The LedgerTrie models a ledger's history as a map from Seq -> ID. Any two ledgers that have the same ID for a given Seq have the same ID for all earlier sequences (e.g. shared ancestry). In practice, a ledger only conveniently has the prior 256 ancestor hashes available. For RCLValidatedLedger, we treat any ledgers separated by more than 256 Seq as distinct.

Definition at line 153 of file RCLValidations.h.

Member Typedef Documentation

◆ ID

Definition at line 156 of file RCLValidations.h.

◆ Seq

Definition at line 157 of file RCLValidations.h.

Constructor & Destructor Documentation

◆ RCLValidatedLedger() [1/2]

ripple::RCLValidatedLedger::RCLValidatedLedger ( MakeGenesis  )

Definition at line 39 of file RCLValidations.cpp.

◆ RCLValidatedLedger() [2/2]

ripple::RCLValidatedLedger::RCLValidatedLedger ( std::shared_ptr< Ledger const > const &  ledger,
beast::Journal  j 
)

Definition at line 44 of file RCLValidations.cpp.

Member Function Documentation

◆ seq()

auto ripple::RCLValidatedLedger::seq ( ) const

The sequence (index) of the ledger.

Definition at line 67 of file RCLValidations.cpp.

◆ id()

auto ripple::RCLValidatedLedger::id ( ) const

The ID (hash) of the ledger.

Definition at line 72 of file RCLValidations.cpp.

◆ operator[]()

auto ripple::RCLValidatedLedger::operator[] ( Seq const &  s) const

Lookup the ID of the ancestor ledger.

Parameters
sThe sequence (index) of the ancestor
Returns
The ID of this ledger's ancestor with that sequence number or ID{0} if one was not determined

Definition at line 78 of file RCLValidations.cpp.

◆ minSeq()

auto ripple::RCLValidatedLedger::minSeq ( ) const

Definition at line 61 of file RCLValidations.cpp.

Friends And Related Function Documentation

◆ mismatch

Seq mismatch ( RCLValidatedLedger const &  a,
RCLValidatedLedger const &  b 
)
friend

Find the sequence number of the earliest mismatching ancestor.

Definition at line 98 of file RCLValidations.cpp.

Member Data Documentation

◆ ledgerID_

ID ripple::RCLValidatedLedger::ledgerID_
private

Definition at line 194 of file RCLValidations.h.

◆ ledgerSeq_

Seq ripple::RCLValidatedLedger::ledgerSeq_
private

Definition at line 195 of file RCLValidations.h.

◆ ancestors_

std::vector<uint256> ripple::RCLValidatedLedger::ancestors_
private

Definition at line 196 of file RCLValidations.h.

◆ j_

beast::Journal ripple::RCLValidatedLedger::j_
private

Definition at line 197 of file RCLValidations.h.