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 17 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 10 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 30 of file ApplyContext.h.

Member Function Documentation

◆ view() [1/2]

ApplyView & ripple::ApplyContext::view ( )

Definition at line 59 of file ApplyContext.h.

◆ view() [2/2]

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

Definition at line 65 of file ApplyContext.h.

◆ rawView()

RawView & ripple::ApplyContext::rawView ( )

Definition at line 72 of file ApplyContext.h.

◆ flags()

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

Definition at line 78 of file ApplyContext.h.

◆ deliver()

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

Sets the DeliveredAmount field in the metadata.

Definition at line 85 of file ApplyContext.h.

◆ discard()

void ripple::ApplyContext::discard ( )

Discard changes and start fresh.

Definition at line 35 of file ApplyContext.cpp.

◆ apply()

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

Apply the transaction result to the base.

Definition at line 41 of file ApplyContext.cpp.

◆ size()

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

Get the number of unapplied changes.

Definition at line 48 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 54 of file ApplyContext.cpp.

◆ destroyXRP()

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

Definition at line 110 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 132 of file ApplyContext.cpp.

◆ failInvariantCheck()

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

Definition at line 64 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 78 of file ApplyContext.cpp.

Member Data Documentation

◆ app

Application& ripple::ApplyContext::app

Definition at line 52 of file ApplyContext.h.

◆ tx

STTx const& ripple::ApplyContext::tx

Definition at line 53 of file ApplyContext.h.

◆ preclaimResult

TER const ripple::ApplyContext::preclaimResult

Definition at line 54 of file ApplyContext.h.

◆ baseFee

XRPAmount const ripple::ApplyContext::baseFee

Definition at line 55 of file ApplyContext.h.

◆ journal

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

Definition at line 56 of file ApplyContext.h.

◆ base_

OpenView& ripple::ApplyContext::base_
private

Definition at line 135 of file ApplyContext.h.

◆ flags_

ApplyFlags ripple::ApplyContext::flags_
private

Definition at line 136 of file ApplyContext.h.

◆ view_

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

Definition at line 137 of file ApplyContext.h.

◆ parentBatchId_

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

Definition at line 140 of file ApplyContext.h.