xrpld
Loading...
Searching...
No Matches
ApplyViewBase.cpp
1#include <xrpl/ledger/detail/ApplyViewBase.h>
2
3#include <xrpl/basics/base_uint.h>
4#include <xrpl/ledger/ApplyView.h>
5#include <xrpl/ledger/ReadView.h>
6#include <xrpl/protocol/Fees.h>
7#include <xrpl/protocol/Keylet.h>
8#include <xrpl/protocol/LedgerHeader.h>
9#include <xrpl/protocol/Rules.h>
10#include <xrpl/protocol/STLedgerEntry.h>
11#include <xrpl/protocol/XRPAmount.h>
12
13#include <memory>
14#include <optional>
15
16namespace xrpl::detail {
17
21
22//---
23
24bool
26{
27 return base_->open();
28}
29
30LedgerHeader const&
32{
33 return base_->header();
34}
35
36Fees const&
38{
39 return base_->fees();
40}
41
42Rules const&
44{
45 return base_->rules();
46}
47
48bool
50{
51 return items_.exists(*base_, k);
52}
53
54auto
57{
58 return items_.succ(*base_, key, last);
59}
60
63{
64 return items_.read(*base_, k);
65}
66
67auto
68ApplyViewBase::slesBegin() const -> std::unique_ptr<SlesType::iter_base>
69{
70 return base_->slesBegin();
71}
72
73auto
74ApplyViewBase::slesEnd() const -> std::unique_ptr<SlesType::iter_base>
75{
76 return base_->slesEnd();
77}
78
79auto
81{
82 return base_->slesUpperBound(key);
83}
84
85auto
86ApplyViewBase::txsBegin() const -> std::unique_ptr<TxsType::iter_base>
87{
88 return base_->txsBegin();
89}
90
91auto
92ApplyViewBase::txsEnd() const -> std::unique_ptr<TxsType::iter_base>
93{
94 return base_->txsEnd();
95}
96
97bool
99{
100 return base_->txExists(key);
101}
102
103auto
105{
106 return base_->txRead(key);
107}
108
109//---
110
113{
114 return flags_;
115}
116
119{
120 return items_.peek(*base_, k);
121}
122
123void
125{
126 items_.erase(*base_, sle);
127}
128
129void
131{
132 items_.insert(*base_, sle);
133}
134
135void
137{
138 items_.update(*base_, sle);
139}
140
141//---
142
143void
145{
146 items_.rawErase(*base_, sle);
147}
148
149void
151{
152 items_.insert(*base_, sle);
153}
154
155void
157{
158 items_.replace(*base_, sle);
159}
160
161void
163{
164 items_.destroyXRP(fee);
165}
166
167} // namespace xrpl::detail
std::pair< std::shared_ptr< STTx const >, std::shared_ptr< STObject const > > tx_type
Definition ReadView.h:33
uint256 key_type
Definition ReadView.h:35
Rules controlling protocol behavior.
Definition Rules.h:33
std::shared_ptr< STLedgerEntry > const & ref
std::shared_ptr< STLedgerEntry > pointer
std::shared_ptr< STLedgerEntry const > const_pointer
void rawDestroyXRP(XRPAmount const &feeDrops) override
Destroy XRP.
void insert(SLE::ref sle) override
Insert a new state SLE.
ApplyFlags flags() const override
Returns the tx apply flags.
std::optional< key_type > succ(key_type const &key, std::optional< key_type > const &last=std::nullopt) const override
Return the key of the next state item.
std::unique_ptr< SlesType::iter_base > slesEnd() const override
SLE::pointer peek(Keylet const &k) override
Prepare to modify the SLE associated with key.
void rawInsert(SLE::ref sle) override
Unconditionally insert a state item.
void update(SLE::ref sle) override
Indicate changes to a peeked SLE.
std::unique_ptr< TxsType::iter_base > txsBegin() const override
bool open() const override
Returns true if this reflects an open ledger.
void rawReplace(SLE::ref sle) override
Unconditionally replace a state item.
LedgerHeader const & header() const override
Returns information about the ledger.
SLE::const_pointer read(Keylet const &k) const override
Return the state item associated with a key.
void erase(SLE::ref sle) override
Remove a peeked SLE.
Rules const & rules() const override
Returns the tx processing rules.
detail::ApplyStateTable items_
std::unique_ptr< SlesType::iter_base > slesBegin() const override
std::unique_ptr< SlesType::iter_base > slesUpperBound(uint256 const &key) const override
tx_type txRead(key_type const &key) const override
Read a transaction from the tx map.
Fees const & fees() const override
Returns the fees for the base ledger.
std::unique_ptr< TxsType::iter_base > txsEnd() const override
bool txExists(key_type const &key) const override
Returns true if a tx exists in the tx map.
void rawErase(SLE::ref sle) override
Delete an existing state item.
bool exists(Keylet const &k) const override
Determine if a state item exists.
STL namespace.
ApplyFlags
Definition ApplyView.h:12
BaseUInt< 256 > uint256
Definition base_uint.h:562
Reflects the fee settings for a particular ledger.
A pair of SHAMap key and LedgerEntryType.
Definition Keylet.h:19
Information about the notional ledger backing the view.