载入中...
搜索中...
未找到
eve::transaction::ResourceDebitParticipant类 参考final

Adapts IResourceAccount debit semantics to Coordinator. 更多...

#include <ResourceAccountParticipant.h>

类 eve::transaction::ResourceDebitParticipant 继承关系图:
eve::transaction::ITransactionParticipant

Public 成员函数

 ResourceDebitParticipant (eve::resource::IResourceAccount &account, eve::resource::CostSpec cost, std::string name="resource-debit")
 Bind one debit cost to an account.
 
 ResourceDebitParticipant (const ResourceDebitParticipant &)=delete
 
ResourceDebitParticipant & operator= (const ResourceDebitParticipant &)=delete
 
 ResourceDebitParticipant (ResourceDebitParticipant &&)=delete
 
ResourceDebitParticipant & operator= (ResourceDebitParticipant &&)=delete
 
std::string_view name () const noexcept override
 Return the diagnostic name supplied at construction.
 
eve::Result< void > prepare (const TransactionContext &context) override
 Validate and stage local changes for the transaction.
 
eve::Result< void > commit (const TransactionContext &context) override
 Publish this participant's staged changes.
 
eve::Result< void > rollback (const TransactionContext &context) override
 Discard a prepared but not committed stage.
 
eve::Result< void > compensate (const TransactionContext &context) override
 Undo an already committed external effect by compensation.
 
ResourceDebitState state () const noexcept
 Return the participant lifecycle state for diagnostics/tests.
 
- Public 成员函数 继承自 eve::transaction::ITransactionParticipant
virtual ~ITransactionParticipant ()=default
 Releases ITransactionParticipant resources.
 

详细描述

Adapts IResourceAccount debit semantics to Coordinator.

prepare reserves the complete cost, commit consumes that reservation, rollback releases an uncommitted reservation, and compensate credits the same cost after a later participant has already committed. This class owns no account balance; the referenced account and CostSpec remain caller-owned and must outlive the synchronous Coordinator call.

在文件 ResourceAccountParticipant.h 第 37 行定义.

构造及析构函数说明

◆ ResourceDebitParticipant() [1/3]

eve::transaction::ResourceDebitParticipant::ResourceDebitParticipant ( eve::resource::IResourceAccount &  account,
eve::resource::CostSpec  cost,
std::string  name = "resource-debit" 
)

Bind one debit cost to an account.

参数
accountBorrowed account whose balance will be debited.
costValidated or pending-validation canonical resource cost.
nameStable diagnostic name used by Coordinator.

在文件 ResourceAccountParticipant.cpp 第 23 行定义.

◆ ResourceDebitParticipant() [2/3]

eve::transaction::ResourceDebitParticipant::ResourceDebitParticipant ( const ResourceDebitParticipant &  )
delete

◆ ResourceDebitParticipant() [3/3]

eve::transaction::ResourceDebitParticipant::ResourceDebitParticipant ( ResourceDebitParticipant &&  )
delete

成员函数说明

◆ commit()

eve::Result< void > eve::transaction::ResourceDebitParticipant::commit ( const TransactionContext &  context)
overridevirtual

Publish this participant's staged changes.

参数
contextShared borrowed transaction context.
返回
Success when the participant is committed, otherwise diagnostics.

Commits .

实现了 eve::transaction::ITransactionParticipant.

在文件 ResourceAccountParticipant.cpp 第 43 行定义.

引用了 eve::Applied, eve::resource::IResourceAccount::commit(), eve::transaction::Committed, context, eve::Result< T >::failure(), eve::transaction::Prepared, eve::Status::success() , 以及 eve::Result< T >::success().

◆ compensate()

eve::Result< void > eve::transaction::ResourceDebitParticipant::compensate ( const TransactionContext &  context)
overridevirtual

Undo an already committed external effect by compensation.

参数
contextShared borrowed transaction context.
返回
Success when compensation completes, Unsupported when impossible, or another failure with diagnostics.

Compensate.

实现了 eve::transaction::ITransactionParticipant.

在文件 ResourceAccountParticipant.cpp 第 67 行定义.

引用了 eve::Applied, eve::transaction::Committed, eve::transaction::Compensated, context, eve::resource::IResourceAccount::credit(), eve::Result< T >::failure(), eve::Status::success() , 以及 eve::Result< T >::success().

◆ name()

std::string_view eve::transaction::ResourceDebitParticipant::name ( ) const
inlineoverridevirtualnoexcept

Return the diagnostic name supplied at construction.

重载 eve::transaction::ITransactionParticipant .

在文件 ResourceAccountParticipant.h 第 54 行定义.

◆ operator=() [1/2]

ResourceDebitParticipant & eve::transaction::ResourceDebitParticipant::operator= ( const ResourceDebitParticipant &  )
delete

◆ operator=() [2/2]

ResourceDebitParticipant & eve::transaction::ResourceDebitParticipant::operator= ( ResourceDebitParticipant &&  )
delete

◆ prepare()

eve::Result< void > eve::transaction::ResourceDebitParticipant::prepare ( const TransactionContext &  context)
overridevirtual

Validate and stage local changes for the transaction.

参数
contextShared borrowed transaction context.
返回
Success when this participant is prepared, otherwise diagnostics.

Prepare.

实现了 eve::transaction::ITransactionParticipant.

在文件 ResourceAccountParticipant.cpp 第 29 行定义.

引用了 eve::Applied, eve::transaction::Committed, eve::transaction::Compensated, context, eve::Result< T >::failure(), eve::transaction::Prepared, eve::resource::IResourceAccount::reserve(), eve::Status::success() , 以及 eve::Result< T >::success().

◆ rollback()

eve::Result< void > eve::transaction::ResourceDebitParticipant::rollback ( const TransactionContext &  context)
overridevirtual

Discard a prepared but not committed stage.

参数
contextShared borrowed transaction context.
返回
Success when provisional state is discarded, otherwise diagnostics.

Rollback.

实现了 eve::transaction::ITransactionParticipant.

在文件 ResourceAccountParticipant.cpp 第 55 行定义.

引用了 eve::Applied, context, eve::Result< T >::failure(), eve::transaction::Prepared, eve::resource::IResourceAccount::rollback(), eve::transaction::RolledBack, eve::Status::success() , 以及 eve::Result< T >::success().

◆ state()

ResourceDebitState eve::transaction::ResourceDebitParticipant::state ( ) const
inlinenoexcept

Return the participant lifecycle state for diagnostics/tests.

在文件 ResourceAccountParticipant.h 第 73 行定义.


该类的文档由以下文件生成: