载入中...
搜索中...
未找到
ResourceAccountParticipant.cpp
浏览该文件的文档.
14eve::Result<void> forwardFailure(eve::Result<void>& result) { return eve::Result<void>::failure(result.status()); }
Transaction participant for an atomic resource debit.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
const Status & status() const noexcept
Inspect the structured operation status.
Definition Result.h:269
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status failure(StatusCode code, Diagnostic diagnostic)
Construct a failed status with one diagnostic.
Definition Status.h:84
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Provider-neutral resource account contract.
Definition ResourceAccount.h:316
virtual eve::Result< Receipt > credit(const CostSpec &cost)=0
Atomically credit all items immediately.
virtual eve::Result< Receipt > commit(const Reservation &reservation)=0
Commit one active reservation as an atomic debit.
virtual eve::Result< Reservation > reserve(const CostSpec &cost)=0
Reserve all items of a cost without changing visible balances.
virtual eve::Result< void > rollback(const Reservation &reservation)=0
Release one active reservation without changing balances.
eve::Result< void > prepare(const TransactionContext &context) override
Validate and stage local changes for the transaction.
Definition ResourceAccountParticipant.cpp:29
ResourceDebitParticipant(eve::resource::IResourceAccount &account, eve::resource::CostSpec cost, std::string name="resource-debit")
Bind one debit cost to an account.
Definition ResourceAccountParticipant.cpp:23
eve::Result< void > commit(const TransactionContext &context) override
Publish this participant's staged changes.
Definition ResourceAccountParticipant.cpp:43
eve::Result< void > compensate(const TransactionContext &context) override
Undo an already committed external effect by compensation.
Definition ResourceAccountParticipant.cpp:67
eve::Result< void > rollback(const TransactionContext &context) override
Discard a prepared but not committed stage.
Definition ResourceAccountParticipant.cpp:55
Immutable context shared by every participant of one transaction.
Definition Transaction.h:30
Definition AtomicResourcePayment.cpp:8
@ Compensated
@ RolledBack
@ Conflict
@ Applied
@ Conflict
Definition Container.h:602