pub struct NoopAttachmentManifest;Expand description
No-op AttachmentManifest for ephemeral facades: records nothing, imposes
no boundary guard (holds_ref returns true), and exposes no refs. The
backend is the sole source of truth for these runtimes.
Trait Implementations§
Source§impl AttachmentManifest for NoopAttachmentManifest
impl AttachmentManifest for NoopAttachmentManifest
fn record_intent(&self, _intent: AttachmentIntent) -> Result<(), StoreError>
Source§fn commit_refs(
&self,
_session_id: &str,
_attachment_ids: &[AttachmentId],
) -> Result<(), StoreError>
fn commit_refs( &self, _session_id: &str, _attachment_ids: &[AttachmentId], ) -> Result<(), StoreError>
Mark a set of attachment ids as committed (i.e. now referenced
by a durable session-graph commit). Backends that store
commits and manifest in the same database stamp this inside
the commit transaction; the trait-level method is the
out-of-band entry point for hosts that want to commit an id
outside the normal turn-commit flow. Read more
Source§fn list_uncommitted(
&self,
_older_than_epoch_ms: u64,
) -> Result<Vec<AttachmentManifestEntry>, StoreError>
fn list_uncommitted( &self, _older_than_epoch_ms: u64, ) -> Result<Vec<AttachmentManifestEntry>, StoreError>
Return manifest entries whose intent has aged past
older_than_epoch_ms without ever being committed. Hosts run
this periodically to find orphans left by crashes between
record_intent and the next turn commit.Source§fn forget(
&self,
_session_id: &str,
_attachment_id: &AttachmentId,
) -> Result<(), StoreError>
fn forget( &self, _session_id: &str, _attachment_id: &AttachmentId, ) -> Result<(), StoreError>
Remove one session’s manifest row. Called by the session facade when a
turn releases an attachment, and by
delete_session when a whole
session’s refs are dropped. The bytes themselves die later via GC once
no session references them.Source§fn holds_ref(
&self,
_session_id: &str,
_attachment_id: &AttachmentId,
) -> Result<bool, StoreError>
fn holds_ref( &self, _session_id: &str, _attachment_id: &AttachmentId, ) -> Result<bool, StoreError>
Whether this manifest holds a live ref — an intent or a commit — for
(session_id, attachment_id). Read moreSource§fn list_all_refs(&self) -> Result<Vec<AttachmentId>, StoreError>
fn list_all_refs(&self) -> Result<Vec<AttachmentId>, StoreError>
Every live attachment ref (intent or committed) this manifest instance
can see, deduplicated. For a global manifest table (Postgres) this spans
all sessions; for a per-session database (SQLite) it is that session’s
refs, which the factory-level
AttachmentRootSet unions across every
session database at sweep time. Feeds mark-and-sweep GC.Source§fn forget_aged_uncommitted_intents(
&self,
intent_grace_cutoff_epoch_ms: u64,
) -> Result<(), StoreError>
fn forget_aged_uncommitted_intents( &self, intent_grace_cutoff_epoch_ms: u64, ) -> Result<(), StoreError>
Atomically forget every uncommitted intent whose
intent_at_epoch_ms
is at or before intent_grace_cutoff_epoch_ms and whose durable owner
is proven dead. Unscoped host puts have no owner proof and retain the
legacy age-only fallback. Read moreSource§fn has_live_ref_for_id(
&self,
attachment_id: &AttachmentId,
intent_grace_cutoff_epoch_ms: u64,
) -> Result<bool, StoreError>
fn has_live_ref_for_id( &self, attachment_id: &AttachmentId, intent_grace_cutoff_epoch_ms: u64, ) -> Result<bool, StoreError>
Whether this manifest currently holds a GC-live ref for
attachment_id
— a committed ref, or an uncommitted intent that is not both aged and
owner-dead. The cutoff is retention policy after terminal proof, never a
liveness oracle for turn/process owners. Read moreAuto Trait Implementations§
impl Freeze for NoopAttachmentManifest
impl RefUnwindSafe for NoopAttachmentManifest
impl Send for NoopAttachmentManifest
impl Sync for NoopAttachmentManifest
impl Unpin for NoopAttachmentManifest
impl UnsafeUnpin for NoopAttachmentManifest
impl UnwindSafe for NoopAttachmentManifest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more