Broker-owned content-addressed artifact persistence. More...
#include <control_artifacts.hpp>
Public Types | |
| using | WallClock = std::function<std::chrono::system_clock::time_point()> |
Public Member Functions | |
| ControlArtifactStore (ControlArtifactStoreConfig config, WallClock clock=[] { return std::chrono::system_clock::now();}) | |
| ~ControlArtifactStore () | |
| ControlArtifactStore (const ControlArtifactStore &)=delete | |
| ControlArtifactStore & | operator= (const ControlArtifactStore &)=delete |
| bool | is_ready () const |
| std::size_t | maximum_blob_bytes () const noexcept |
| ControlArtifactStoreResult | store (std::span< const std::uint8_t > bytes, ControlArtifactLineage lineage, ControlArtifactProperties properties) |
| std::optional< ControlArtifactMetadata > | metadata (std::string_view artifact_id) const |
| Returns immutable publication metadata without reading blob bytes. | |
| ControlArtifactCollectionResult | collect () |
| Applies expiry and crash cleanup and returns bounded deletion evidence. | |
| std::vector< ControlArtifactDeletionRecord > | deletion_audit () const |
Friends | |
| class | ControlBroker |
Broker-owned content-addressed artifact persistence.
Blobs are durably published before their opaque ACL metadata. Two artifacts with distinct lineage may therefore share immutable blob bytes without sharing authority. Metadata is the only discoverable artifact publication; an orphan blob left by a crash grants no access.
| using pulp::inspect::ControlArtifactStore::WallClock = std::function<std::chrono::system_clock::time_point()> |
|
explicit |
| pulp::inspect::ControlArtifactStore::~ControlArtifactStore | ( | ) |
|
delete |
| ControlArtifactCollectionResult pulp::inspect::ControlArtifactStore::collect | ( | ) |
Applies expiry and crash cleanup and returns bounded deletion evidence.
This performs filesystem work and must run on the broker/background thread, never on a render or audio callback.
| std::vector< ControlArtifactDeletionRecord > pulp::inspect::ControlArtifactStore::deletion_audit | ( | ) | const |
| bool pulp::inspect::ControlArtifactStore::is_ready | ( | ) | const |
|
noexcept |
| std::optional< ControlArtifactMetadata > pulp::inspect::ControlArtifactStore::metadata | ( | std::string_view | artifact_id | ) | const |
Returns immutable publication metadata without reading blob bytes.
Possession of metadata does not authorize a blob read; byte retrieval is a private broker-only capability that revalidates exact receipt lineage.
|
delete |
| ControlArtifactStoreResult pulp::inspect::ControlArtifactStore::store | ( | std::span< const std::uint8_t > | bytes, |
| ControlArtifactLineage | lineage, | ||
| ControlArtifactProperties | properties ) |
|
friend |