Durable broker operation receipt and idempotency ledger. More...
#include <control_operations.hpp>
Public Types | |
| using | WallClock = std::function<std::chrono::system_clock::time_point()> |
Durable broker operation receipt and idempotency ledger.
The store owns its mutex and performs no callbacks while holding it. Broker identity/grant coordination must therefore happen outside this class; no broker lock needs to span filesystem I/O. open() must succeed before any other operation. It fails closed on malformed committed metadata and turns receipts left Running by a prior process into UnknownNeedsRefresh before accepting new admissions.
| using pulp::inspect::ControlOperationStore::WallClock = std::function<std::chrono::system_clock::time_point()> |
|
explicit |
| pulp::inspect::ControlOperationStore::~ControlOperationStore | ( | ) |
|
delete |
| ControlOperationStoreResult pulp::inspect::ControlOperationStore::admit | ( | ControlOperationBinding | binding | ) |
| ControlOperationStoreResult pulp::inspect::ControlOperationStore::begin | ( | const ControlReceiptId & | receipt_id | ) |
Atomically claims an admitted receipt for execution.
Cancellation and the receipt's absolute deadline are resolved durably before Running can become visible.
| bool pulp::inspect::ControlOperationStore::is_open | ( | ) | const |
| ControlOperationStoreResult pulp::inspect::ControlOperationStore::open | ( | ) |
|
delete |
| std::optional< ControlOperationReceipt > pulp::inspect::ControlOperationStore::receipt | ( | const ControlReceiptId & | receipt_id | ) | const |
| std::vector< ControlOperationReceipt > pulp::inspect::ControlOperationStore::receipts | ( | ) | const |
| ControlOperationStoreResult pulp::inspect::ControlOperationStore::replay | ( | ControlOperationBinding | binding | ) |
Resolves an existing idempotent receipt without admitting new work.
| ControlOperationStoreResult pulp::inspect::ControlOperationStore::request_cancellation | ( | const ControlReceiptId & | receipt_id, |
| std::string | reason ) |
| ControlOperationStoreResult pulp::inspect::ControlOperationStore::transition | ( | const ControlReceiptId & | receipt_id, |
| ControlReceiptState | expected, | ||
| ControlReceiptState | next, | ||
| ControlOperationResult | result = {} ) |