xrpld
Loading...
Searching...
No Matches
BookDirs.h
1#pragma once
2
3#include <xrpl/ledger/ReadView.h>
4
5namespace xrpl {
6
8{
9private:
10 ReadView const* view_ = nullptr;
15 unsigned int entry_ = 0;
17
18public:
19 class const_iterator; // NOLINT(readability-identifier-naming)
21
22 BookDirs(ReadView const&, Book const&);
23
24 [[nodiscard]] const_iterator
25 begin() const;
26
27 [[nodiscard]] const_iterator
28 end() const;
29};
30
31class BookDirs::const_iterator // NOLINT(readability-identifier-naming)
32{
33public:
35 using pointer = value_type const*;
36 using reference = value_type const&;
39
40 const_iterator() = default;
41
42 bool
43 operator==(const_iterator const& other) const;
44
45 bool
46 operator!=(const_iterator const& other) const
47 {
48 return !(*this == other);
49 }
50
52 operator*() const;
53
55 operator->() const
56 {
57 return &**this;
58 }
59
61 operator++();
62
64 operator++(int);
65
66private:
67 friend class BookDirs;
68
69 const_iterator(ReadView const& view, uint256 const& root, uint256 const& dirKey)
70 : view_(&view), root_(root), key_(dirKey), curKey_(dirKey)
71 {
72 }
73
74 ReadView const* view_ = nullptr;
80 unsigned int entry_ = 0;
83};
84
85} // namespace xrpl
pointer operator->() const
Definition BookDirs.h:55
value_type const & reference
Definition BookDirs.h:36
bool operator==(const_iterator const &other) const
Definition BookDirs.cpp:53
std::optional< value_type > cache_
Definition BookDirs.h:82
const_iterator(ReadView const &view, uint256 const &root, uint256 const &dirKey)
Definition BookDirs.h:69
value_type const * pointer
Definition BookDirs.h:35
SLE::const_pointer sle_
Definition BookDirs.h:79
const_iterator & operator++()
Definition BookDirs.cpp:76
bool operator!=(const_iterator const &other) const
Definition BookDirs.h:46
BookDirs::value_type value_type
Definition BookDirs.h:34
reference operator*() const
Definition BookDirs.cpp:66
std::ptrdiff_t difference_type
Definition BookDirs.h:37
std::forward_iterator_tag iterator_category
Definition BookDirs.h:38
SLE::const_pointer sle_
Definition BookDirs.h:14
uint256 index_
Definition BookDirs.h:16
uint256 const key_
Definition BookDirs.h:13
BookDirs(ReadView const &, Book const &)
Definition BookDirs.cpp:14
SLE::const_pointer value_type
Definition BookDirs.h:20
uint256 const nextQuality_
Definition BookDirs.h:12
unsigned int entry_
Definition BookDirs.h:15
const_iterator end() const
Definition BookDirs.cpp:47
const_iterator begin() const
Definition BookDirs.cpp:33
ReadView const * view_
Definition BookDirs.h:10
uint256 const root_
Definition BookDirs.h:11
Specifies an order book.
Definition Book.h:16
A view into a ledger.
Definition ReadView.h:31
std::shared_ptr< STLedgerEntry const > const_pointer
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
Number root(Number f, unsigned d)
Definition Number.cpp:1201
BaseUInt< 256 > uint256
Definition base_uint.h:562