xrpld
Loading...
Searching...
No Matches
include
xrpl
ledger
BookDirs.h
1
#pragma once
2
3
#include <xrpl/basics/base_uint.h>
4
#include <xrpl/ledger/ReadView.h>
5
#include <xrpl/protocol/Book.h>
6
#include <xrpl/protocol/STLedgerEntry.h>
7
8
#include <
cstddef
>
9
#include <
iterator
>
10
#include <
optional
>
11
12
namespace
xrpl
{
13
14
class
BookDirs
15
{
16
private
:
17
ReadView
const
*
view_
=
nullptr
;
18
uint256
const
root_
;
19
uint256
const
nextQuality_
;
20
uint256
const
key_
;
21
SLE::const_pointer
sle_
=
nullptr
;
22
unsigned
int
entry_
= 0;
23
uint256
index_
;
24
25
public
:
26
class
const_iterator
;
// NOLINT(readability-identifier-naming)
27
using
value_type
=
SLE::const_pointer
;
28
29
BookDirs
(
ReadView
const
&,
Book
const
&);
30
31
[[nodiscard]]
const_iterator
32
begin
()
const
;
33
34
[[nodiscard]]
const_iterator
35
end
()
const
;
36
};
37
38
class
BookDirs::const_iterator
// NOLINT(readability-identifier-naming)
39
{
40
public
:
41
using
value_type
=
BookDirs::value_type
;
42
using
pointer
=
value_type
const
*;
43
using
reference
=
value_type
const
&;
44
using
difference_type
=
std::ptrdiff_t
;
45
using
iterator_category
=
std::forward_iterator_tag
;
46
47
const_iterator
() =
default
;
48
49
bool
50
operator==
(
const_iterator
const
& other)
const
;
51
52
reference
53
operator*
()
const
;
54
55
pointer
56
operator->
()
const
57
{
58
return
&**
this
;
59
}
60
61
const_iterator
&
62
operator++
();
63
64
const_iterator
65
operator++
(
int
);
66
67
private
:
68
friend
class
BookDirs
;
69
70
const_iterator
(
ReadView
const
& view,
uint256
const
&
root
,
uint256
const
& dirKey)
71
:
view_
(&view),
root_
(
root
),
key_
(dirKey),
curKey_
(dirKey)
72
{
73
}
74
75
ReadView
const
*
view_
=
nullptr
;
76
uint256
root_
;
77
uint256
nextQuality_
;
78
uint256
key_
;
79
uint256
curKey_
;
80
SLE::const_pointer
sle_
;
81
unsigned
int
entry_
= 0;
82
uint256
index_
;
83
std::optional<value_type>
mutable
cache_
;
84
};
85
86
}
// namespace xrpl
xrpl::BookDirs::const_iterator
Definition
BookDirs.h:39
xrpl::BookDirs::const_iterator::root_
uint256 root_
Definition
BookDirs.h:76
xrpl::BookDirs::const_iterator::index_
uint256 index_
Definition
BookDirs.h:82
xrpl::BookDirs::const_iterator::operator->
pointer operator->() const
Definition
BookDirs.h:56
xrpl::BookDirs::const_iterator::reference
value_type const & reference
Definition
BookDirs.h:43
xrpl::BookDirs::const_iterator::operator==
bool operator==(const_iterator const &other) const
Definition
BookDirs.cpp:53
xrpl::BookDirs::const_iterator::cache_
std::optional< value_type > cache_
Definition
BookDirs.h:83
xrpl::BookDirs::const_iterator::const_iterator
const_iterator(ReadView const &view, uint256 const &root, uint256 const &dirKey)
Definition
BookDirs.h:70
xrpl::BookDirs::const_iterator::pointer
value_type const * pointer
Definition
BookDirs.h:42
xrpl::BookDirs::const_iterator::const_iterator
const_iterator()=default
xrpl::BookDirs::const_iterator::key_
uint256 key_
Definition
BookDirs.h:78
xrpl::BookDirs::const_iterator::sle_
SLE::const_pointer sle_
Definition
BookDirs.h:80
xrpl::BookDirs::const_iterator::operator++
const_iterator & operator++()
Definition
BookDirs.cpp:76
xrpl::BookDirs::const_iterator::curKey_
uint256 curKey_
Definition
BookDirs.h:79
xrpl::BookDirs::const_iterator::entry_
unsigned int entry_
Definition
BookDirs.h:81
xrpl::BookDirs::const_iterator::nextQuality_
uint256 nextQuality_
Definition
BookDirs.h:77
xrpl::BookDirs::const_iterator::value_type
BookDirs::value_type value_type
Definition
BookDirs.h:41
xrpl::BookDirs::const_iterator::BookDirs
friend class BookDirs
Definition
BookDirs.h:68
xrpl::BookDirs::const_iterator::operator*
reference operator*() const
Definition
BookDirs.cpp:66
xrpl::BookDirs::const_iterator::difference_type
std::ptrdiff_t difference_type
Definition
BookDirs.h:44
xrpl::BookDirs::const_iterator::iterator_category
std::forward_iterator_tag iterator_category
Definition
BookDirs.h:45
xrpl::BookDirs::const_iterator::view_
ReadView const * view_
Definition
BookDirs.h:75
xrpl::BookDirs::sle_
SLE::const_pointer sle_
Definition
BookDirs.h:21
xrpl::BookDirs::index_
uint256 index_
Definition
BookDirs.h:23
xrpl::BookDirs::key_
uint256 const key_
Definition
BookDirs.h:20
xrpl::BookDirs::BookDirs
BookDirs(ReadView const &, Book const &)
Definition
BookDirs.cpp:14
xrpl::BookDirs::value_type
SLE::const_pointer value_type
Definition
BookDirs.h:27
xrpl::BookDirs::nextQuality_
uint256 const nextQuality_
Definition
BookDirs.h:19
xrpl::BookDirs::entry_
unsigned int entry_
Definition
BookDirs.h:22
xrpl::BookDirs::end
const_iterator end() const
Definition
BookDirs.cpp:47
xrpl::BookDirs::begin
const_iterator begin() const
Definition
BookDirs.cpp:33
xrpl::BookDirs::view_
ReadView const * view_
Definition
BookDirs.h:17
xrpl::BookDirs::root_
uint256 const root_
Definition
BookDirs.h:18
xrpl::Book
Specifies an order book.
Definition
Book.h:28
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:33
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:1491
xrpl::uint256
BaseUInt< 256 > uint256
Definition
base_uint.h:580
optional
std::ptrdiff_t
Generated by
1.16.1