Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::inspect::ControlArtifactStore Class Reference

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

Detailed Description

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.

Member Typedef Documentation

◆ WallClock

using pulp::inspect::ControlArtifactStore::WallClock = std::function<std::chrono::system_clock::time_point()>

Constructor & Destructor Documentation

◆ ControlArtifactStore() [1/2]

pulp::inspect::ControlArtifactStore::ControlArtifactStore ( ControlArtifactStoreConfig config,
WallClock clock = [] { return std::chrono::system_clock::now();} )
explicit

◆ ~ControlArtifactStore()

pulp::inspect::ControlArtifactStore::~ControlArtifactStore ( )

◆ ControlArtifactStore() [2/2]

pulp::inspect::ControlArtifactStore::ControlArtifactStore ( const ControlArtifactStore & )
delete

Member Function Documentation

◆ collect()

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.

◆ deletion_audit()

std::vector< ControlArtifactDeletionRecord > pulp::inspect::ControlArtifactStore::deletion_audit ( ) const

◆ is_ready()

bool pulp::inspect::ControlArtifactStore::is_ready ( ) const

◆ maximum_blob_bytes()

std::size_t pulp::inspect::ControlArtifactStore::maximum_blob_bytes ( ) const
noexcept

◆ metadata()

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.

◆ operator=()

ControlArtifactStore & pulp::inspect::ControlArtifactStore::operator= ( const ControlArtifactStore & )
delete

◆ store()

ControlArtifactStoreResult pulp::inspect::ControlArtifactStore::store ( std::span< const std::uint8_t > bytes,
ControlArtifactLineage lineage,
ControlArtifactProperties properties )

◆ ControlBroker

friend class ControlBroker
friend

The documentation for this class was generated from the following file: