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

Coordinates participant lifecycles with deterministic ordering. 更多...

#include <Transaction.h>

Public 成员函数

Result< TransactionReceipt > execute (const TransactionContext &context, std::span< ITransactionParticipant * > participants) const
 Atomically execute borrowed participants for one context.
 
Result< TransactionReceipt > compensate (const TransactionContext &context, std::span< ITransactionParticipant * > participants) const
 Compensate already committed participants in reverse dependency order.
 

详细描述

Coordinates participant lifecycles with deterministic ordering.

Participants prepare in input order. On prepare failure, prepared participants roll back in reverse order. On commit failure, uncommitted participants roll back in reverse order and committed participants compensate in reverse order. The coordinator never substitutes rollback for compensation and never hides a failed compensation.

在文件 Transaction.h 第 178 行定义.

成员函数说明

◆ compensate()

eve::Result< TransactionReceipt > eve::transaction::Coordinator::compensate ( const TransactionContext &  context,
std::span< ITransactionParticipant * >  participants 
) const

Compensate already committed participants in reverse dependency order.

参数
contextImmutable metadata for the compensation operation.
participantsNon-owning participants whose committed effects are to be undone.
返回
A compensated receipt, or a failure containing every compensation diagnostic when one or more effects could not be undone.
备注
Compensation is intentionally separate from rollback: rollback is only for a prepared participant that was never committed.

在文件 Transaction.cpp 第 269 行定义.

引用了 eve::Applied, eve::transaction::TransactionReceipt::causationId, eve::transaction::Compensated, eve::transaction::TransactionReceipt::compensatedCount, eve::transaction::CompensationFailed, eve::Conflict, context, eve::transaction::TransactionReceipt::correlationId, eve::Diagnostic::error(), eve::Failed, eve::transaction::TransactionReceipt::identity, index, eve::InvalidArgument, offset, eve::transaction::TransactionReceipt::participantCount, previous, eve::Rejected, eve::transaction::TransactionReceipt::state, eve::Status::success(), eve::Result< T >::success() , 以及 eve::transaction::TransactionReceipt::transactionId.

◆ execute()

eve::Result< TransactionReceipt > eve::transaction::Coordinator::execute ( const TransactionContext &  context,
std::span< ITransactionParticipant * >  participants 
) const

Atomically execute borrowed participants for one context.

参数
contextImmutable transaction metadata shared with all participants.
participantsNon-owning participant pointers, unique and non-null; order defines prepare and commit order.
返回
A committed receipt, or a failure describing the first error and any rollback/compensation failure. @thread Synchronous; caller and participants must obey their documented thread affinity and must not re-enter this coordinator call.

在文件 Transaction.cpp 第 176 行定义.

引用了 eve::Applied, eve::transaction::TransactionReceipt::causationId, eve::transaction::Committed, eve::transaction::TransactionReceipt::committedCount, eve::Conflict, context, eve::transaction::TransactionReceipt::correlationId, eve::Diagnostic::error(), eve::Failed, eve::transaction::TransactionReceipt::identity, eve::InvalidArgument, eve::transaction::TransactionReceipt::participantCount, eve::transaction::TransactionReceipt::preparedCount, previous, eve::Rejected, eve::transaction::TransactionReceipt::state, eve::Status::success(), eve::Result< T >::success() , 以及 eve::transaction::TransactionReceipt::transactionId.

被这些函数引用 eve::statepatch::StatePatchStateAdapter::apply(), eve::transaction::AtomicResourcePayment::execute(), eve::transaction::AtomicResourcePayment::execute(), eve::dialogue::DialoguePaymentAdapter::execute(), eve::procgen::ArtifactPublisher::publish(), eve::procgen::ArtifactPublisher::restore() , 以及 eve::rpg::Crafting::settle().


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