rippled
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
ripple::ApplyContext Class Reference

State information when applying a tx. More...

#include <ApplyContext.h>

Collaboration diagram for ripple::ApplyContext:
Collaboration graph
[legend]

Public Member Functions

 ApplyContext (Application &app, OpenView &base, std::optional< uint256 const > const &parentBatchId, STTx const &tx, TER preclaimResult, XRPAmount baseFee, ApplyFlags flags, beast::Journal journal=beast::Journal{beast::Journal::getNullSink()})
 
 ApplyContext (Application &app, OpenView &base, STTx const &tx, TER preclaimResult, XRPAmount baseFee, ApplyFlags flags, beast::Journal journal=beast::Journal{beast::Journal::getNullSink()})
 
ApplyViewview ()
 
ApplyView const & view () const
 
RawViewrawView ()
 
ApplyFlags const & flags () const
 
void deliver (STAmount const &amount)
 Sets the DeliveredAmount field in the metadata.
 
void discard ()
 Discard changes and start fresh.
 
std::optional< TxMetaapply (TER)
 Apply the transaction result to the base.
 
std::size_t size ()
 Get the number of unapplied changes.
 
void visit (std::function< void(uint256 const &key, bool isDelete, std::shared_ptr< SLE const > const &before, std::shared_ptr< SLE const > const &after)> const &func)
 Visit unapplied changes.
 
void destroyXRP (XRPAmount const &fee)
 
TER checkInvariants (TER const result, XRPAmount const fee)
 Applies all invariant checkers one by one.
 

Public Attributes

Applicationapp
 
STTx const & tx
 
TER const preclaimResult
 
XRPAmount const baseFee
 
beast::Journal const journal
 

Private Member Functions

TER failInvariantCheck (TER const result)
 
template<std::size_t... Is>
TER checkInvariantsHelper (TER const result, XRPAmount const fee, std::index_sequence< Is... >)
 

Private Attributes

OpenViewbase_
 
ApplyFlags flags_
 
std::optional< ApplyViewImplview_
 
std::optional< uint256 const > parentBatchId_
 

Detailed Description

State information when applying a tx.

Definition at line 36 of file ApplyContext.h.

Constructor & Destructor Documentation

◆ ApplyContext() [1/2]

ripple::ApplyContext::ApplyContext ( Application app,
OpenView base,
std::optional< uint256 const > const &  parentBatchId,
STTx const &  tx,
TER  preclaimResult,
XRPAmount  baseFee,
ApplyFlags  flags,
beast::Journal  journal = beast::Journal{beast::Journal::getNullSink()} 
)
explicit

Definition at line 29 of file ApplyContext.cpp.

◆ ApplyContext() [2/2]

ripple::ApplyContext::ApplyContext ( Application app,
OpenView base,
STTx const &  tx,
TER  preclaimResult,
XRPAmount  baseFee,
ApplyFlags  flags,
beast::Journal  journal = beast::Journal{beast::Journal::getNullSink()} 
)
explicit

Definition at line 49 of file ApplyContext.h.

Member Function Documentation

◆ view() [1/2]

ApplyView & ripple::ApplyContext::view ( )

Definition at line 78 of file ApplyContext.h.

◆ view() [2/2]

ApplyView const & ripple::ApplyContext::view ( ) const

Definition at line 84 of file ApplyContext.h.

◆ rawView()

RawView & ripple::ApplyContext::rawView ( )

Definition at line 91 of file ApplyContext.h.

◆ flags()

ApplyFlags const & ripple::ApplyContext::flags ( ) const

Definition at line 97 of file ApplyContext.h.

◆ deliver()

void ripple::ApplyContext::deliver ( STAmount const &  amount)

Sets the DeliveredAmount field in the metadata.

Definition at line 104 of file ApplyContext.h.

◆ discard()

void ripple::ApplyContext::discard ( )

Discard changes and start fresh.

Definition at line 54 of file ApplyContext.cpp.

◆ apply()

std::optional< TxMeta > ripple::ApplyContext::apply ( TER  ter)

Apply the transaction result to the base.

Definition at line 60 of file ApplyContext.cpp.

◆ size()

std::size_t ripple::ApplyContext::size ( )

Get the number of unapplied changes.

Definition at line 67 of file ApplyContext.cpp.

◆ visit()

void ripple::ApplyContext::visit ( std::function< void(uint256 const &key, bool isDelete, std::shared_ptr< SLE const > const &before, std::shared_ptr< SLE const > const &after)> const &  func)

Visit unapplied changes.

Definition at line 73 of file ApplyContext.cpp.

◆ destroyXRP()

void ripple::ApplyContext::destroyXRP ( XRPAmount const &  fee)

Definition at line 129 of file ApplyContext.h.

◆ checkInvariants()

TER ripple::ApplyContext::checkInvariants ( TER const  result,
XRPAmount const  fee 
)

Applies all invariant checkers one by one.

Parameters
resultthe result generated by processing this transaction.
feethe fee charged for this transaction
Returns
the result code that should be returned for this transaction.

Definition at line 151 of file ApplyContext.cpp.

◆ failInvariantCheck()

TER ripple::ApplyContext::failInvariantCheck ( TER const  result)
private

Definition at line 83 of file ApplyContext.cpp.

◆ checkInvariantsHelper()

template<std::size_t... Is>
TER ripple::ApplyContext::checkInvariantsHelper ( TER const  result,
XRPAmount const  fee,
std::index_sequence< Is... >   
)
private

Definition at line 97 of file ApplyContext.cpp.

Member Data Documentation

◆ app

Application& ripple::ApplyContext::app

Definition at line 71 of file ApplyContext.h.

◆ tx

STTx const& ripple::ApplyContext::tx

Definition at line 72 of file ApplyContext.h.

◆ preclaimResult

TER const ripple::ApplyContext::preclaimResult

Definition at line 73 of file ApplyContext.h.

◆ baseFee

XRPAmount const ripple::ApplyContext::baseFee

Definition at line 74 of file ApplyContext.h.

◆ journal

beast::Journal const ripple::ApplyContext::journal

Definition at line 75 of file ApplyContext.h.

◆ base_

OpenView& ripple::ApplyContext::base_
private

Definition at line 154 of file ApplyContext.h.

◆ flags_

ApplyFlags ripple::ApplyContext::flags_
private

Definition at line 155 of file ApplyContext.h.

◆ view_

std::optional<ApplyViewImpl> ripple::ApplyContext::view_
private

Definition at line 156 of file ApplyContext.h.

◆ parentBatchId_

std::optional<uint256 const> ripple::ApplyContext::parentBatchId_
private

Definition at line 159 of file ApplyContext.h.