pub struct ReliableChannel { /* private fields */ }Expand description
Reliable delivery channel with retransmission and RTT estimation.
Implementations§
Source§impl ReliableChannel
impl ReliableChannel
pub fn new(channel_id: u8, config: TransportConfig) -> Self
pub fn channel_id(&self) -> u8
pub fn stats(&self) -> &TransportStats
pub fn rtt_ms(&self) -> f64
pub fn local_sequence(&self) -> u16
pub fn remote_sequence(&self) -> u16
Sourcepub fn send(&mut self, data: Vec<u8>) -> u16
pub fn send(&mut self, data: Vec<u8>) -> u16
Queue data for reliable sending. Returns the assigned sequence number.
Sourcepub fn flush(&mut self, now: Instant) -> Vec<(PacketHeader, Vec<u8>)>
pub fn flush(&mut self, now: Instant) -> Vec<(PacketHeader, Vec<u8>)>
Flush the send queue, producing packets ready to send.
Sourcepub fn receive(&mut self, header: &PacketHeader, payload: Vec<u8>, now: Instant)
pub fn receive(&mut self, header: &PacketHeader, payload: Vec<u8>, now: Instant)
Process an incoming reliable packet.
Sourcepub fn drain_received(&mut self) -> Vec<Vec<u8>>
pub fn drain_received(&mut self) -> Vec<Vec<u8>>
Drain delivered messages in order.
Sourcepub fn drain_pending_acks(&mut self) -> Vec<u16>
pub fn drain_pending_acks(&mut self) -> Vec<u16>
Get pending acks to piggyback on outgoing packets.
Sourcepub fn is_congested(&self) -> bool
pub fn is_congested(&self) -> bool
Whether the send window is full.
Auto Trait Implementations§
impl Freeze for ReliableChannel
impl RefUnwindSafe for ReliableChannel
impl Send for ReliableChannel
impl Sync for ReliableChannel
impl Unpin for ReliableChannel
impl UnsafeUnpin for ReliableChannel
impl UnwindSafe for ReliableChannel
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.