77 && target.
revision != std::numeric_limits<uint64_t>::max()
86 && target_owner_ == target.
owner
87 && target_revision_ == target.
revision
96 target_owner_ = target.
owner;
115 double value = *ledger;
130 const bool no_claim = std::isnan(consumed) && retired == 0.0;
131 const bool valid_claim = std::isfinite(consumed) && consumed > 0.0
132 && std::isfinite(retired) && retired >= 0.0;
133 if (!no_claim && !valid_claim)
return false;
134 close_claim_consumed_ = consumed;
135 close_claim_retired_ = retired;
136 close_claim_release_ = valid_claim
146 || !std::isfinite(ledger)) {
149 const double credit = close_claim_consumed_ + close_claim_retired_;
150 if (!std::isfinite(credit) || !std::isfinite(ledger + credit))
return false;
160 uint64_t source_incarnation_ = 0;
161 int64_t source_sequence_ = 0;
162 uint64_t target_incarnation_ = 0;
163 int64_t target_owner_ = 0;
164 uint64_t target_revision_ = 0;
165 double close_claim_consumed_ = std::numeric_limits<double>::quiet_NaN();
166 double close_claim_retired_ = 0.0;
CancellationResult cancel(CancellationCause cause, uint64_t source_incarnation, int64_t source_sequence, CancellationTarget target, CancellationTarget current_target)
uint64_t source_incarnation() const
CancellationResult cancel_and_release(CancellationCause cause, uint64_t source_incarnation, int64_t source_sequence, CancellationTarget target, CancellationTarget current_target, double *ledger)
uint64_t target_incarnation() const
bool has_close_claim() const
bool bind_close_claim(double consumed, double retired)
int64_t source_sequence() const
CancellationState state() const
bool release_close_claim_once(double &ledger)
int64_t target_owner() const
CancellationCause cause() const
uint64_t target_revision() const
CloseClaimRelease close_claim_release() const
double close_claim_retired() const
double close_claim_consumed() const