Adapts IResourceAccount debit semantics to Coordinator. 更多...
#include <ResourceAccountParticipant.h>
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.
- 参数
-
account Borrowed account whose balance will be debited. cost Validated or pending-validation canonical resource cost. name Stable diagnostic name used by Coordinator.
在文件 ResourceAccountParticipant.cpp 第 23 行定义.
◆ ResourceDebitParticipant() [2/3]
|
delete |
◆ ResourceDebitParticipant() [3/3]
|
delete |
成员函数说明
◆ commit()
|
overridevirtual |
Publish this participant's staged changes.
- 参数
-
context Shared 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()
|
overridevirtual |
Undo an already committed external effect by compensation.
- 参数
-
context Shared borrowed transaction context.
- 返回
- Success when compensation completes,
Unsupportedwhen 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()
|
inlineoverridevirtualnoexcept |
Return the diagnostic name supplied at construction.
重载 eve::transaction::ITransactionParticipant .
在文件 ResourceAccountParticipant.h 第 54 行定义.
◆ operator=() [1/2]
|
delete |
◆ operator=() [2/2]
|
delete |
◆ prepare()
|
overridevirtual |
Validate and stage local changes for the transaction.
- 参数
-
context Shared 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()
|
overridevirtual |
Discard a prepared but not committed stage.
- 参数
-
context Shared 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()
|
inlinenoexcept |
Return the participant lifecycle state for diagnostics/tests.
在文件 ResourceAccountParticipant.h 第 73 行定义.
该类的文档由以下文件生成:
- src/modules/transaction/ResourceAccountParticipant.h
- src/modules/transaction/ResourceAccountParticipant.cpp
Public 成员函数 继承自