pub struct FeedHandle { /* private fields */ }Expand description
Handle to a running feed.
Provides per-feed monitoring and control: health events, metrics, queue telemetry, uptime, pause/resume, and stop.
Backed by Arc<FeedSharedState> — cloning is cheap (Arc bump).
Metrics are read from the same atomic counters that the feed worker
thread writes.
Implementations§
Source§impl FeedHandle
impl FeedHandle
Sourcepub fn metrics(&self) -> FeedMetrics
pub fn metrics(&self) -> FeedMetrics
Get a snapshot of the feed’s current metrics.
Reads live atomic counters maintained by the feed worker thread.
Sourcepub fn queue_telemetry(&self) -> QueueTelemetry
pub fn queue_telemetry(&self) -> QueueTelemetry
Get a snapshot of the feed’s source and sink queue depths/capacities.
Source queue depth reads the frame queue’s internal lock briefly. Sink queue depth reads an atomic counter with no locking.
If no processing session is active (between restarts or after shutdown), both depths return 0.
Sourcepub fn uptime(&self) -> Duration
pub fn uptime(&self) -> Duration
Elapsed time since the feed’s current processing session started.
Semantics: session-scoped uptime. The clock resets on each successful start or restart. If the feed has not started yet or is between restart attempts, the value reflects the time since the last session began.
Useful for monitoring feed stability: a feed that restarts frequently will show low uptime values.
Sourcepub fn decode_status(&self) -> Option<DecodeStatus>
pub fn decode_status(&self) -> Option<DecodeStatus>
The decode method confirmed by the media backend for this feed.
Returns None if no decode decision has been made yet (the
stream has not started, the backend has not negotiated a decoder,
or the feed is between restarts).
Sourcepub fn diagnostics(&self) -> FeedDiagnostics
pub fn diagnostics(&self) -> FeedDiagnostics
Get a consolidated diagnostics snapshot of this feed.
Composes lifecycle state, metrics, queue depths, decode status, and view-system health into a single read. All data comes from the same atomic counters the individual accessors use — this is a convenience composite, not a new data source.
Suitable for periodic polling (1–5 s) by dashboards and health probes.
Trait Implementations§
Source§impl Clone for FeedHandle
impl Clone for FeedHandle
Source§fn clone(&self) -> FeedHandle
fn clone(&self) -> FeedHandle
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for FeedHandle
impl RefUnwindSafe for FeedHandle
impl Send for FeedHandle
impl Sync for FeedHandle
impl Unpin for FeedHandle
impl UnsafeUnpin for FeedHandle
impl UnwindSafe for FeedHandle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more