xrpld
Loading...
Searching...
No Matches
ApplyViewBase.h
1#pragma once
2
3#include <xrpl/basics/base_uint.h>
4#include <xrpl/ledger/ApplyView.h>
5#include <xrpl/ledger/RawView.h>
6#include <xrpl/ledger/ReadView.h>
7#include <xrpl/ledger/detail/ApplyStateTable.h>
8#include <xrpl/protocol/Fees.h>
9#include <xrpl/protocol/Keylet.h>
10#include <xrpl/protocol/LedgerHeader.h>
11#include <xrpl/protocol/Rules.h>
12#include <xrpl/protocol/STLedgerEntry.h>
13#include <xrpl/protocol/XRPAmount.h>
14
15#include <memory>
16#include <optional>
17
18namespace xrpl::detail {
19
20class ApplyViewBase : public ApplyView, public RawView
21{
22public:
23 ApplyViewBase() = delete;
24 ApplyViewBase(ApplyViewBase const&) = delete;
28 operator=(ApplyViewBase const&) = delete;
29
31
33
34 // ReadView
35 [[nodiscard]] bool
36 open() const override;
37
38 [[nodiscard]] LedgerHeader const&
39 header() const override;
40
41 [[nodiscard]] Fees const&
42 fees() const override;
43
44 [[nodiscard]] Rules const&
45 rules() const override;
46
47 [[nodiscard]] bool
48 exists(Keylet const& k) const override;
49
50 [[nodiscard]] std::optional<key_type>
51 succ(key_type const& key, std::optional<key_type> const& last = std::nullopt) const override;
52
53 [[nodiscard]] SLE::const_pointer
54 read(Keylet const& k) const override;
55
57 slesBegin() const override;
58
60 slesEnd() const override;
61
63 slesUpperBound(uint256 const& key) const override;
64
66 txsBegin() const override;
67
69 txsEnd() const override;
70
71 [[nodiscard]] bool
72 txExists(key_type const& key) const override;
73
74 [[nodiscard]] tx_type
75 txRead(key_type const& key) const override;
76
77 // ApplyView
78
79 [[nodiscard]] ApplyFlags
80 flags() const override;
81
83 peek(Keylet const& k) override;
84
85 void
86 erase(SLE::ref sle) override;
87
88 void
89 insert(SLE::ref sle) override;
90
91 void
92 update(SLE::ref sle) override;
93
94 // RawView
95
96 void
97 rawErase(SLE::ref sle) override;
98
99 void
100 rawInsert(SLE::ref sle) override;
101
102 void
103 rawReplace(SLE::ref sle) override;
104
105 void
106 rawDestroyXRP(XRPAmount const& feeDrops) override;
107
108protected:
112};
113
114} // namespace xrpl::detail
ApplyView()=default
RawView()=default
std::pair< std::shared_ptr< STTx const >, std::shared_ptr< STObject const > > tx_type
Definition ReadView.h:43
uint256 key_type
Definition ReadView.h:45
Rules controlling protocol behavior.
Definition Rules.h:40
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.
ApplyViewBase & operator=(ApplyViewBase const &)=delete
SLE::const_pointer read(Keylet const &k) const override
Return the state item associated with a key.
ApplyViewBase(ApplyViewBase &&)=default
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.
ApplyViewBase(ApplyViewBase const &)=delete
bool exists(Keylet const &k) const override
Determine if a state item exists.
ApplyViewBase & operator=(ApplyViewBase &&)=delete
ApplyFlags
Definition ApplyView.h:27
BaseUInt< 256 > uint256
Definition base_uint.h:580
Reflects the fee settings for a particular ledger.
A pair of SHAMap key and LedgerEntryType.
Definition Keylet.h:20
Information about the notional ledger backing the view.