rippled
Loading...
Searching...
No Matches
ApplyViewBase.h
1#pragma once
2
3#include <xrpl/ledger/ApplyView.h>
4#include <xrpl/ledger/ReadView.h>
5#include <xrpl/ledger/detail/ApplyStateTable.h>
6#include <xrpl/protocol/XRPAmount.h>
7
8namespace xrpl {
9namespace detail {
10
11class ApplyViewBase : public ApplyView, public RawView
12{
13public:
14 ApplyViewBase() = delete;
15 ApplyViewBase(ApplyViewBase const&) = delete;
19 operator=(ApplyViewBase const&) = delete;
20
22
24
25 // ReadView
26 bool
27 open() const override;
28
29 LedgerHeader const&
30 header() const override;
31
32 Fees const&
33 fees() const override;
34
35 Rules const&
36 rules() const override;
37
38 bool
39 exists(Keylet const& k) const override;
40
42 succ(key_type const& key, std::optional<key_type> const& last = std::nullopt) const override;
43
45 read(Keylet const& k) const override;
46
48 slesBegin() const override;
49
51 slesEnd() const override;
52
54 slesUpperBound(uint256 const& key) const override;
55
57 txsBegin() const override;
58
60 txsEnd() const override;
61
62 bool
63 txExists(key_type const& key) const override;
64
66 txRead(key_type const& key) const override;
67
68 // ApplyView
69
71 flags() const override;
72
74 peek(Keylet const& k) override;
75
76 void
77 erase(std::shared_ptr<SLE> const& sle) override;
78
79 void
80 insert(std::shared_ptr<SLE> const& sle) override;
81
82 void
83 update(std::shared_ptr<SLE> const& sle) override;
84
85 // RawView
86
87 void
88 rawErase(std::shared_ptr<SLE> const& sle) override;
89
90 void
91 rawInsert(std::shared_ptr<SLE> const& sle) override;
92
93 void
94 rawReplace(std::shared_ptr<SLE> const& sle) override;
95
96 void
97 rawDestroyXRP(XRPAmount const& feeDrops) override;
98
99protected:
103};
104
105} // namespace detail
106} // namespace xrpl
Writeable view to a ledger, for applying a transaction.
Definition ApplyView.h:114
Interface for ledger entry changes.
Definition RawView.h:14
A view into a ledger.
Definition ReadView.h:31
Rules controlling protocol behavior.
Definition Rules.h:18
void rawDestroyXRP(XRPAmount const &feeDrops) override
Destroy XRP.
void rawInsert(std::shared_ptr< SLE > const &sle) override
Unconditionally insert a state item.
void update(std::shared_ptr< SLE > const &sle) override
Indicate changes to a peeked 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< sles_type::iter_base > slesEnd() const override
void erase(std::shared_ptr< SLE > const &sle) override
Remove a peeked SLE.
std::unique_ptr< txs_type::iter_base > txsBegin() const override
bool open() const override
Returns true if this reflects an open ledger.
void rawErase(std::shared_ptr< SLE > const &sle) override
Delete an existing state item.
LedgerHeader const & header() const override
Returns information about the ledger.
ApplyViewBase & operator=(ApplyViewBase const &)=delete
ApplyViewBase(ApplyViewBase &&)=default
std::shared_ptr< SLE > peek(Keylet const &k) override
Prepare to modify the SLE associated with key.
Rules const & rules() const override
Returns the tx processing rules.
detail::ApplyStateTable items_
void rawReplace(std::shared_ptr< SLE > const &sle) override
Unconditionally replace a state item.
std::shared_ptr< SLE const > read(Keylet const &k) const override
Return the state item associated with a key.
std::unique_ptr< sles_type::iter_base > slesBegin() const override
std::unique_ptr< sles_type::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< txs_type::iter_base > txsEnd() const override
bool txExists(key_type const &key) const override
Returns true if a tx exists in the tx map.
void insert(std::shared_ptr< SLE > const &sle) override
Insert a new state SLE.
ApplyViewBase(ApplyViewBase const &)=delete
bool exists(Keylet const &k) const override
Determine if a state item exists.
ApplyViewBase & operator=(ApplyViewBase &&)=delete
T is_same_v
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
ApplyFlags
Definition ApplyView.h:10
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.