pub struct SenderCore { /* private fields */ }Expand description
A destination’s single packet scheduler and retained recovery state.
now always belongs to the same local RobotClock. The caller owns transport
and wakeups; this core neither reads a global clock nor sleeps. Runtime objects
are never retained here. Optional feedback can later request the same retained
jobs through request_recovery, without bypassing this scheduler’s budget.
Implementations§
Source§impl SenderCore
impl SenderCore
Sourcepub fn set_repair_interval(&mut self, every: u16) -> Result<()>
pub fn set_repair_interval(&mut self, every: u16) -> Result<()>
Changes only future repair scheduling; retained packets and budgets are untouched.
Sourcepub fn new(
config: LogStreamSenderConfig,
now: CuTime,
reserved_bytes: usize,
) -> Result<Self>
pub fn new( config: LogStreamSenderConfig, now: CuTime, reserved_bytes: usize, ) -> Result<Self>
Validate all storage arithmetic before allocating. reserved_bytes covers
the driver’s owned-record pool, which shares the destination budget.
pub const fn stats(&self) -> SenderStats
Sourcepub fn accept_record(&mut self, record: &[u8], now: CuTime) -> Result<()>
pub fn accept_record(&mut self, record: &[u8], now: CuTime) -> Result<()>
Admit an already encoded record from a bounded worker buffer. No borrow escapes this call. CL packets shed on overflow; retained recovery replaces only a complete matching boundary/keyframe pair.
Sourcepub fn request_recovery(&mut self)
pub fn request_recovery(&mut self)
Coalesced request for retained bootstrap data. Future advisory feedback uses this same operation; it grants neither extra bandwidth nor retention.
Sourcepub fn begin_shutdown(&mut self)
pub fn begin_shutdown(&mut self)
Disable periodic work. The driver enforces the finite shutdown deadline.
Sourcepub fn discard_pending(&mut self)
pub fn discard_pending(&mut self)
Account for work abandoned at the driver’s finite shutdown deadline.
pub fn is_idle(&self) -> bool
Auto Trait Implementations§
impl Freeze for SenderCore
impl RefUnwindSafe for SenderCore
impl Send for SenderCore
impl Sync for SenderCore
impl Unpin for SenderCore
impl UnsafeUnpin for SenderCore
impl UnwindSafe for SenderCore
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
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