rippled
Loading...
Searching...
No Matches
ReadView.cpp
1#include <xrpl/ledger/ReadView.h>
2
3namespace ripple {
4
5ReadView::sles_type::sles_type(ReadView const& view) : ReadViewFwdRange(view)
6{
7}
8
9auto
11{
12 return iterator(view_, view_->slesBegin());
13}
14
15auto
17{
18 return iterator(view_, view_->slesEnd());
19}
20
21auto
23{
24 return iterator(view_, view_->slesUpperBound(key));
25}
26
27ReadView::txs_type::txs_type(ReadView const& view) : ReadViewFwdRange(view)
28{
29}
30
31bool
33{
34 return begin() == end();
35}
36
37auto
38ReadView::txs_type::begin() const -> iterator
39{
40 return iterator(view_, view_->txsBegin());
41}
42
43auto
44ReadView::txs_type::end() const -> iterator
45{
46 return iterator(view_, view_->txsEnd());
47}
48
51{
52 return makeRulesGivenLedger(ledger, current.presets());
53}
54
57 DigestAwareReadView const& ledger,
59{
60 Keylet const k = keylet::amendments();
61 std::optional digest = ledger.digest(k.key);
62 if (digest)
63 {
64 auto const sle = ledger.read(k);
65 if (sle)
66 return Rules(presets, digest, sle->getFieldV256(sfAmendments));
67 }
68 return Rules(presets);
69}
70
71} // namespace ripple
ReadView that associates keys with digests.
Definition ReadView.h:236
virtual std::optional< digest_type > digest(key_type const &key) const =0
Return the digest associated with the key.
A view into a ledger.
Definition ReadView.h:32
virtual std::shared_ptr< SLE const > read(Keylet const &k) const =0
Return the state item associated with a key.
Rules controlling protocol behavior.
Definition Rules.h:19
friend Rules makeRulesGivenLedger(DigestAwareReadView const &ledger, Rules const &current)
Definition ReadView.cpp:50
Keylet const & amendments() noexcept
The index of the amendment table.
Definition Indexes.cpp:195
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@ current
This was a new validation and was added.
static Hasher::result_type digest(void const *data, std::size_t size) noexcept
Definition tokens.cpp:138
Rules makeRulesGivenLedger(DigestAwareReadView const &ledger, Rules const &current)
Definition ReadView.cpp:50
A pair of SHAMap key and LedgerEntryType.
Definition Keylet.h:20
uint256 key
Definition Keylet.h:21
iterator upper_bound(key_type const &key) const
Definition ReadView.cpp:22
iterator begin() const
Definition ReadView.cpp:10
sles_type(ReadView const &view)
Definition ReadView.cpp:5
iterator end() const
Definition ReadView.cpp:44
txs_type(ReadView const &view)
Definition ReadView.cpp:27
iterator begin() const
Definition ReadView.cpp:38