xrpld
Loading...
Searching...
No Matches
xrpl::DirectIOfferCrossingStep Class Reference
Inheritance diagram for xrpl::DirectIOfferCrossingStep:
Collaboration diagram for xrpl::DirectIOfferCrossingStep:

Public Member Functions

 DirectIOfferCrossingStep (StrandContext const &ctx, AccountID const &src, AccountID const &dst, Currency const &c)
std::pair< IOUAmount, DebtDirection > maxFlow (ReadView const &sb, IOUAmount const &desired) const
std::string logString () const override
AccountID const & src () const
AccountID const & dst () const
Currency const & currency () const
std::optional< EitherAmount > cachedIn () const override
std::optional< EitherAmount > cachedOut () const override
std::optional< AccountID > directStepSrcAcct () const override
std::optional< std::pair< AccountID, AccountID > > directStepAccts () const override
DebtDirection debtDirection (ReadView const &sb, StrandDirection dir) const override
std::uint32_t lineQualityIn (ReadView const &v) const override
std::pair< std::optional< Quality >, DebtDirection > qualityUpperBound (ReadView const &v, DebtDirection dir) const override
std::pair< IOUAmount, IOUAmount > revImp (PaymentSandbox &sb, ApplyView &afView, boost::container::flat_set< UInt256 > &ofrsToRm, IOUAmount const &out)
std::pair< IOUAmount, IOUAmount > fwdImp (PaymentSandbox &sb, ApplyView &afView, boost::container::flat_set< UInt256 > &ofrsToRm, IOUAmount const &in)
std::pair< bool, EitherAmount > validFwd (PaymentSandbox &sb, ApplyView &afView, EitherAmount const &in) override
TER check (StrandContext const &ctx) const
void setCacheLimiting (IOUAmount const &fwdIn, IOUAmount const &fwdSrcToDst, IOUAmount const &fwdOut, DebtDirection srcDebtDir)

Static Public Member Functions

static bool verifyPrevStepDebtDirection (DebtDirection prevStepDir)
static bool verifyDstQualityIn (std::uint32_t dstQIn)
static std::uint32_t quality (ReadView const &sb, QualityDirection qDir)
static TER check (StrandContext const &ctx, SLE::ConstRef sleSrc)

Protected Member Functions

std::pair< IOUAmount, DebtDirection > maxPaymentFlow (ReadView const &sb) const
std::pair< std::uint32_t, std::uint32_t > qualitiesSrcRedeems (ReadView const &sb) const
std::pair< std::uint32_t, std::uint32_t > qualitiesSrcIssues (ReadView const &sb, DebtDirection prevStepDebtDirection) const
std::pair< std::uint32_t, std::uint32_t > qualities (ReadView const &sb, DebtDirection srcDebtDir, StrandDirection strandDir) const
std::string logStringImpl (char const *name) const

Protected Attributes

AccountID src_
AccountID dst_
Currency currency_
Step const *const prevStep_
bool const isLast_
beast::Journal const j_
std::optional< Cache > cache_

Private Member Functions

bool equal (Step const &rhs) const override

Private Attributes

friend TDerived

Detailed Description

Definition at line 283 of file DirectStep.cpp.

Constructor & Destructor Documentation

◆ DirectIOfferCrossingStep()

xrpl::DirectIOfferCrossingStep::DirectIOfferCrossingStep ( StrandContext const & ctx,
AccountID const & src,
AccountID const & dst,
Currency const & c )

Definition at line 286 of file DirectStep.cpp.

Member Function Documentation

◆ verifyPrevStepDebtDirection()

bool xrpl::DirectIOfferCrossingStep::verifyPrevStepDebtDirection ( DebtDirection prevStepDir)
static

Definition at line 298 of file DirectStep.cpp.

◆ verifyDstQualityIn()

bool xrpl::DirectIOfferCrossingStep::verifyDstQualityIn ( std::uint32_t dstQIn)
static

Definition at line 311 of file DirectStep.cpp.

◆ quality()

std::uint32_t xrpl::DirectIOfferCrossingStep::quality ( ReadView const & sb,
QualityDirection qDir )
static

Definition at line 384 of file DirectStep.cpp.

◆ maxFlow()

std::pair< IOUAmount, DebtDirection > xrpl::DirectIOfferCrossingStep::maxFlow ( ReadView const & sb,
IOUAmount const & desired ) const
nodiscard

Definition at line 398 of file DirectStep.cpp.

◆ check() [1/2]

TER xrpl::DirectIOfferCrossingStep::check ( StrandContext const & ctx,
SLE::ConstRef sleSrc )
static

Definition at line 467 of file DirectStep.cpp.

◆ logString()

std::string xrpl::DirectIOfferCrossingStep::logString ( ) const
nodiscardoverride

Definition at line 334 of file DirectStep.cpp.

◆ maxPaymentFlow()

std::pair< IOUAmount, DebtDirection > xrpl::DirectStepI< DirectIOfferCrossingStep >::maxPaymentFlow ( ReadView const & sb) const
nodiscardprotectedinherited

Definition at line 75 of file DirectStep.cpp.

◆ qualitiesSrcRedeems()

std::pair< std::uint32_t, std::uint32_t > xrpl::DirectStepI< DirectIOfferCrossingStep >::qualitiesSrcRedeems ( ReadView const & sb) const
nodiscardprotectedinherited

Definition at line 79 of file DirectStep.cpp.

◆ qualitiesSrcIssues()

std::pair< std::uint32_t, std::uint32_t > xrpl::DirectStepI< DirectIOfferCrossingStep >::qualitiesSrcIssues ( ReadView const & sb,
DebtDirection prevStepDebtDirection ) const
nodiscardprotectedinherited

Definition at line 83 of file DirectStep.cpp.

◆ qualities()

std::pair< std::uint32_t, std::uint32_t > xrpl::DirectStepI< DirectIOfferCrossingStep >::qualities ( ReadView const & sb,
DebtDirection srcDebtDir,
StrandDirection strandDir ) const
nodiscardprotectedinherited

Definition at line 87 of file DirectStep.cpp.

◆ src()

AccountID const & xrpl::DirectStepI< DirectIOfferCrossingStep >::src ( ) const
nodiscardinherited

Definition at line 106 of file DirectStep.cpp.

◆ dst()

AccountID const & xrpl::DirectStepI< DirectIOfferCrossingStep >::dst ( ) const
nodiscardinherited

Definition at line 111 of file DirectStep.cpp.

◆ currency()

Currency const & xrpl::DirectStepI< DirectIOfferCrossingStep >::currency ( ) const
nodiscardinherited

Definition at line 116 of file DirectStep.cpp.

◆ cachedIn()

std::optional< EitherAmount > xrpl::DirectStepI< DirectIOfferCrossingStep >::cachedIn ( ) const
nodiscardoverrideinherited

Definition at line 122 of file DirectStep.cpp.

◆ cachedOut()

std::optional< EitherAmount > xrpl::DirectStepI< DirectIOfferCrossingStep >::cachedOut ( ) const
nodiscardoverrideinherited

Definition at line 130 of file DirectStep.cpp.

◆ directStepSrcAcct()

std::optional< AccountID > xrpl::DirectStepI< DirectIOfferCrossingStep >::directStepSrcAcct ( ) const
nodiscardoverrideinherited

Definition at line 138 of file DirectStep.cpp.

◆ directStepAccts()

std::optional< std::pair< AccountID, AccountID > > xrpl::DirectStepI< DirectIOfferCrossingStep >::directStepAccts ( ) const
nodiscardoverrideinherited

Definition at line 144 of file DirectStep.cpp.

◆ debtDirection()

DebtDirection xrpl::DirectStepI< DirectIOfferCrossingStep >::debtDirection ( ReadView const & sb,
StrandDirection dir ) const
nodiscardoverrideinherited

Definition at line 150 of file DirectStep.cpp.

◆ lineQualityIn()

std::uint32_t xrpl::DirectStepI< DirectIOfferCrossingStep >::lineQualityIn ( ReadView const & v) const
nodiscardoverrideinherited

Definition at line 153 of file DirectStep.cpp.

◆ qualityUpperBound()

std::pair< std::optional< Quality >, DebtDirection > xrpl::DirectStepI< DirectIOfferCrossingStep >::qualityUpperBound ( ReadView const & v,
DebtDirection dir ) const
nodiscardoverrideinherited

Definition at line 156 of file DirectStep.cpp.

◆ revImp()

std::pair< IOUAmount, IOUAmount > xrpl::DirectStepI< DirectIOfferCrossingStep >::revImp ( PaymentSandbox & sb,
ApplyView & afView,
boost::container::flat_set< UInt256 > & ofrsToRm,
IOUAmount const & out )
inherited

Definition at line 159 of file DirectStep.cpp.

◆ fwdImp()

std::pair< IOUAmount, IOUAmount > xrpl::DirectStepI< DirectIOfferCrossingStep >::fwdImp ( PaymentSandbox & sb,
ApplyView & afView,
boost::container::flat_set< UInt256 > & ofrsToRm,
IOUAmount const & in )
inherited

Definition at line 166 of file DirectStep.cpp.

◆ validFwd()

std::pair< bool, EitherAmount > xrpl::DirectStepI< DirectIOfferCrossingStep >::validFwd ( PaymentSandbox & sb,
ApplyView & afView,
EitherAmount const & in )
overrideinherited

Definition at line 173 of file DirectStep.cpp.

◆ check() [2/2]

TER xrpl::DirectStepI< DirectIOfferCrossingStep >::check ( StrandContext const & ctx) const
nodiscardinherited

Definition at line 178 of file DirectStep.cpp.

◆ setCacheLimiting()

void xrpl::DirectStepI< DirectIOfferCrossingStep >::setCacheLimiting ( IOUAmount const & fwdIn,
IOUAmount const & fwdSrcToDst,
IOUAmount const & fwdOut,
DebtDirection srcDebtDir )
inherited

Definition at line 181 of file DirectStep.cpp.

◆ logStringImpl()

std::string xrpl::DirectStepI< DirectIOfferCrossingStep >::logStringImpl ( char const * name) const
protectedinherited

Definition at line 201 of file DirectStep.cpp.

◆ equal()

bool xrpl::DirectStepI< DirectIOfferCrossingStep >::equal ( Step const & rhs) const
nodiscardoverrideprivateinherited

Definition at line 211 of file DirectStep.cpp.

Member Data Documentation

◆ src_

Definition at line 42 of file DirectStep.cpp.

◆ dst_

Definition at line 43 of file DirectStep.cpp.

◆ currency_

Currency xrpl::DirectStepI< DirectIOfferCrossingStep >::currency_
protectedinherited

Definition at line 44 of file DirectStep.cpp.

◆ prevStep_

Step const* const xrpl::DirectStepI< DirectIOfferCrossingStep >::prevStep_
protectedinherited

Definition at line 47 of file DirectStep.cpp.

◆ isLast_

bool const xrpl::DirectStepI< DirectIOfferCrossingStep >::isLast_
protectedinherited

Definition at line 48 of file DirectStep.cpp.

◆ j_

Definition at line 49 of file DirectStep.cpp.

◆ cache_

std::optional<Cache> xrpl::DirectStepI< DirectIOfferCrossingStep >::cache_
protectedinherited

Definition at line 68 of file DirectStep.cpp.

◆ TDerived

Definition at line 220 of file DirectStep.cpp.