rippled
Loading...
Searching...
No Matches
BookDirs.h
1#pragma once
2
3#include <xrpl/beast/utility/Journal.h>
4#include <xrpl/ledger/ReadView.h>
5
6namespace xrpl {
7
9{
10private:
11 ReadView const* view_ = nullptr;
16 unsigned int entry_ = 0;
18
19public:
20 class const_iterator;
22
23 BookDirs(ReadView const&, Book const&);
24
26 begin() const;
27
29 end() const;
30};
31
33{
34public:
36 using pointer = value_type const*;
37 using reference = value_type const&;
40
41 const_iterator() = default;
42
43 bool
44 operator==(const_iterator const& other) const;
45
46 bool
47 operator!=(const_iterator const& other) const
48 {
49 return !(*this == other);
50 }
51
53 operator*() const;
54
56 operator->() const
57 {
58 return &**this;
59 }
60
62 operator++();
63
65 operator++(int);
66
67private:
68 friend class BookDirs;
69
70 const_iterator(ReadView const& view, uint256 const& root, uint256 const& dir_key)
71 : view_(&view), root_(root), key_(dir_key), cur_key_(dir_key)
72 {
73 }
74
75 ReadView const* view_ = nullptr;
81 unsigned int entry_ = 0;
84
86};
87
88} // namespace xrpl
A generic endpoint for log messages.
Definition Journal.h:40
pointer operator->() const
Definition BookDirs.h:56
std::shared_ptr< SLE const > sle_
Definition BookDirs.h:80
value_type const & reference
Definition BookDirs.h:37
bool operator==(const_iterator const &other) const
Definition BookDirs.cpp:48
std::optional< value_type > cache_
Definition BookDirs.h:83
value_type const * pointer
Definition BookDirs.h:36
const_iterator & operator++()
Definition BookDirs.cpp:70
bool operator!=(const_iterator const &other) const
Definition BookDirs.h:47
const_iterator(ReadView const &view, uint256 const &root, uint256 const &dir_key)
Definition BookDirs.h:70
reference operator*() const
Definition BookDirs.cpp:61
static beast::Journal j_
Definition BookDirs.h:85
uint256 index_
Definition BookDirs.h:17
uint256 const key_
Definition BookDirs.h:14
uint256 const next_quality_
Definition BookDirs.h:13
std::shared_ptr< SLE const > sle_
Definition BookDirs.h:15
unsigned int entry_
Definition BookDirs.h:16
const_iterator end() const
Definition BookDirs.cpp:40
const_iterator begin() const
Definition BookDirs.cpp:26
std::shared_ptr< SLE const > value_type
Definition BookDirs.h:21
ReadView const * view_
Definition BookDirs.h:11
uint256 const root_
Definition BookDirs.h:12
Specifies an order book.
Definition Book.h:16
A view into a ledger.
Definition ReadView.h:31
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:938