1#include <xrpl/ledger/Dir.h>
3#include <xrpl/beast/utility/Zero.h>
4#include <xrpl/beast/utility/instrumentation.h>
5#include <xrpl/ledger/ReadView.h>
6#include <xrpl/protocol/Indexes.h>
7#include <xrpl/protocol/Keylet.h>
8#include <xrpl/protocol/SField.h>
52 if (
view_ ==
nullptr || other.
view_ ==
nullptr)
57 "xrpl::Dir::ConstIterator::operator== : views and roots are matching");
64 XRPL_ASSERT(
index_ != beast::kZero,
"xrpl::Dir::ConstIterator::operator* : nonzero index");
73 XRPL_ASSERT(
index_ != beast::kZero,
"xrpl::Dir::ConstIterator::operator++ : nonzero index");
88 index_ != beast::kZero,
"xrpl::Dir::ConstIterator::operator++(int) : nonzero index");
97 auto const next =
sle_->getFieldU64(sfIndexNext);
107 XRPL_ASSERT(
sle_,
"xrpl::Dir::ConstIterator::nextPage : non-null SLE");
ConstIterator & nextPage()
ConstIterator & operator++()
value_type const & reference
ConstIterator(ReadView const &view, Keylet const &root, Keylet const &page)
reference operator*() const
bool operator==(ConstIterator const &other) const
std::vector< uint256 >::const_iterator it_
STVector256 const * indexes_
std::optional< value_type > cache_
ConstIterator begin() const
ConstIterator end() const
STVector256 const * indexes_
Dir(ReadView const &, Keylet const &)
Keylet child(uint256 const &key) noexcept
Any item that can be in an owner dir.
Keylet page(uint256 const &root, std::uint64_t index=0) noexcept
A page in a directory.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Dir::ConstIterator const_iterator
A pair of SHAMap key and LedgerEntryType.