xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
ledger
Dir.h
1
#pragma once
2
3
#include <xrpl/basics/base_uint.h>
4
#include <xrpl/ledger/ReadView.h>
5
#include <xrpl/protocol/Keylet.h>
6
#include <xrpl/protocol/STLedgerEntry.h>
7
#include <xrpl/protocol/STVector256.h>
8
9
#include <
cstddef
>
10
#include <
iterator
>
11
#include <
optional
>
12
#include <
vector
>
13
14
namespace
xrpl
{
15
29
class
Dir
30
{
31
private
:
32
ReadView
const
*
view_
=
nullptr
;
33
Keylet
root_
;
34
SLE::const_pointer
sle_
;
35
STVector256
const
*
indexes_
=
nullptr
;
36
37
public
:
38
class
ConstIterator
;
39
using
value_type
=
SLE::const_pointer
;
40
41
Dir
(
ReadView
const
&,
Keylet
const
&);
42
43
[[nodiscard]]
ConstIterator
44
begin
()
const
;
45
46
[[nodiscard]]
ConstIterator
47
end
()
const
;
48
};
49
50
class
Dir::ConstIterator
51
{
52
public
:
53
using
value_type
=
Dir::value_type
;
54
using
pointer
=
value_type
const
*;
55
using
reference
=
value_type
const
&;
56
using
difference_type
=
std::ptrdiff_t
;
57
using
iterator_category
=
std::forward_iterator_tag
;
58
59
bool
60
operator==
(
ConstIterator
const
& other)
const
;
61
62
reference
63
operator*
()
const
;
64
65
pointer
66
operator->
()
const
67
{
68
return
&**
this
;
69
}
70
71
ConstIterator
&
72
operator++
();
73
74
ConstIterator
75
operator++
(
int
);
76
77
ConstIterator
&
78
nextPage
();
79
80
std::size_t
81
pageSize
();
82
83
Keylet
const
&
84
page
()
const
85
{
86
return
page_
;
87
}
88
89
UInt256
90
index
()
const
91
{
92
return
index_
;
93
}
94
95
private
:
96
friend
class
Dir
;
97
98
ConstIterator
(
ReadView
const
& view,
Keylet
const
&
root
,
Keylet
const
&
page
)
99
:
view_
(&view),
root_
(
root
),
page_
(
page
)
100
{
101
}
102
103
ReadView
const
*
view_
=
nullptr
;
104
Keylet
root_
;
105
Keylet
page_
;
106
UInt256
index_
;
107
std::optional<value_type>
mutable
cache_
;
108
SLE::const_pointer
sle_
;
109
STVector256
const
*
indexes_
=
nullptr
;
110
std::vector<UInt256>::const_iterator
it_
;
111
};
112
113
}
// namespace xrpl
xrpl::Dir::ConstIterator
Definition
Dir.h:51
xrpl::Dir::ConstIterator::pointer
value_type const * pointer
Definition
Dir.h:54
xrpl::Dir::ConstIterator::pageSize
std::size_t pageSize()
Definition
Dir.cpp:124
xrpl::Dir::ConstIterator::root_
Keylet root_
Definition
Dir.h:104
xrpl::Dir::ConstIterator::iterator_category
std::forward_iterator_tag iterator_category
Definition
Dir.h:57
xrpl::Dir::ConstIterator::nextPage
ConstIterator & nextPage()
Definition
Dir.cpp:95
xrpl::Dir::ConstIterator::page
Keylet const & page() const
Definition
Dir.h:84
xrpl::Dir::ConstIterator::it_
std::vector< UInt256 >::const_iterator it_
Definition
Dir.h:110
xrpl::Dir::ConstIterator::operator++
ConstIterator & operator++()
Definition
Dir.cpp:71
xrpl::Dir::ConstIterator::index_
UInt256 index_
Definition
Dir.h:106
xrpl::Dir::ConstIterator::sle_
SLE::const_pointer sle_
Definition
Dir.h:108
xrpl::Dir::ConstIterator::view_
ReadView const * view_
Definition
Dir.h:103
xrpl::Dir::ConstIterator::reference
value_type const & reference
Definition
Dir.h:55
xrpl::Dir::ConstIterator::page_
Keylet page_
Definition
Dir.h:105
xrpl::Dir::ConstIterator::ConstIterator
ConstIterator(ReadView const &view, Keylet const &root, Keylet const &page)
Definition
Dir.h:98
xrpl::Dir::ConstIterator::Dir
friend class Dir
Definition
Dir.h:96
xrpl::Dir::ConstIterator::operator*
reference operator*() const
Definition
Dir.cpp:62
xrpl::Dir::ConstIterator::operator==
bool operator==(ConstIterator const &other) const
Definition
Dir.cpp:50
xrpl::Dir::ConstIterator::index
UInt256 index() const
Definition
Dir.h:90
xrpl::Dir::ConstIterator::indexes_
STVector256 const * indexes_
Definition
Dir.h:109
xrpl::Dir::ConstIterator::difference_type
std::ptrdiff_t difference_type
Definition
Dir.h:56
xrpl::Dir::ConstIterator::operator->
pointer operator->() const
Definition
Dir.h:66
xrpl::Dir::ConstIterator::cache_
std::optional< value_type > cache_
Definition
Dir.h:107
xrpl::Dir::ConstIterator::value_type
Dir::value_type value_type
Definition
Dir.h:53
xrpl::Dir::view_
ReadView const * view_
Definition
Dir.h:32
xrpl::Dir::begin
ConstIterator begin() const
Definition
Dir.cpp:26
xrpl::Dir::end
ConstIterator end() const
Definition
Dir.cpp:44
xrpl::Dir::sle_
SLE::const_pointer sle_
Definition
Dir.h:34
xrpl::Dir::indexes_
STVector256 const * indexes_
Definition
Dir.h:35
xrpl::Dir::value_type
SLE::const_pointer value_type
Definition
Dir.h:39
xrpl::Dir::root_
Keylet root_
Definition
Dir.h:33
xrpl::Dir::Dir
Dir(ReadView const &, Keylet const &)
Definition
Dir.cpp:18
xrpl::ReadView
A view into a ledger.
Definition
ReadView.h:41
xrpl::STLedgerEntry::const_pointer
std::shared_ptr< STLedgerEntry const > const_pointer
Definition
STLedgerEntry.h:36
xrpl::STVector256
Definition
STVector256.h:17
cstddef
iterator
std::forward_iterator_tag
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::root
Number root(Number f, unsigned d)
Definition
libxrpl/basics/Number.cpp:1537
xrpl::UInt256
BaseUInt< 256 > UInt256
Definition
base_uint.h:580
optional
std::ptrdiff_t
std::size_t
xrpl::Keylet
A pair of SHAMap key and LedgerEntryType.
Definition
Keylet.h:20
vector
Generated by
1.17.0