Struct Recovering Reclaimable Clocked Duplex
pub struct RecoveringReclaimableClockedDuplex<P: Processor + Send + 'static> { /* private fields */ }Expand description
Explicit selected-ID recovery with original processor ownership. Control service never invokes restoration or opens while old callbacks are pending. No timer, fallback, automatic state migration or physical hotplug guarantee. Restoration runs only after a receipt and before fresh preparation; its error preserves P. Foreign restoration/deactivation panic loses recovery, never a false receipt.
use ravet_device::{RecoveringReclaimableClockedDuplex,
ReclaimableClockedRecoveryStatus, ClockedRecoveryFailure};
use ravet_foundation::Processor;
fn service<P: Processor + Send + 'static>(session:
&mut RecoveringReclaimableClockedDuplex<P>)
-> Result<ReclaimableClockedRecoveryStatus,
ClockedRecoveryFailure<std::convert::Infallible>>
{
session.service(|processor, _receipt| {
// Caller-selected policy, invoked only after old callbacks retire.
processor.reset();
Ok(())
})
}Implementations§
§impl<P: Processor + Send + 'static> RecoveringReclaimableClockedDuplex<P>
impl<P: Processor + Send + 'static> RecoveringReclaimableClockedDuplex<P>
pub fn new( input_id: impl Into<String>, output_id: impl Into<String>, input_config: StreamConfig, output_config: StreamConfig, ring_frames: usize, processor: P, options: ClockedDuplexOptions, ) -> Result<Self, ReclaimableClockedRecoveryConstructionFailure<P>>
pub fn status(&self) -> ReclaimableClockedRecoveryStatus
pub fn request_reopen(&mut self)
pub fn request_reopen(&mut self)
Stop a healthy live pair, entering asynchronous proof before explicit restoration/reprepare. Disabled/owned/pending states remain unchanged.
pub fn statistics(&self) -> Option<ReclaimableClockedStatistics>
pub fn generation(&self) -> u64
pub fn set_enabled(&mut self, enabled: bool)
pub fn service<E>(
&mut self,
restore: impl FnOnce(&mut P, ClockedRecoveryReceipt) -> Result<(), E>,
) -> Result<ReclaimableClockedRecoveryStatus, ClockedRecoveryFailure<E>>
pub fn service<E>( &mut self, restore: impl FnOnce(&mut P, ClockedRecoveryReceipt) -> Result<(), E>, ) -> Result<ReclaimableClockedRecoveryStatus, ClockedRecoveryFailure<E>>
Caller-scheduled control work. Known live callback faults retire before device enumeration. Healthy enumeration errors retain the pair and return the original error; they do not infer device absence. Pending/disabled states only poll proof, with no enumeration, opening or restoration.
pub fn into_owner(
self,
) -> Result<FailedClockedOwner<P>, ReclaimableClockedRecoveryError>
pub fn into_owner( self, ) -> Result<FailedClockedOwner<P>, ReclaimableClockedRecoveryError>
Return original owner or pending proof; never extract/seek while live/pending.