pub struct ReliableSender<P: Send + Sync> { /* private fields */ }Expand description
Retransmit-on-timeout sender that tracks unacknowledged messages and re-queues them after an RTT-based interval.
Implementations§
Source§impl<P: Send + Sync> ReliableSender<P>
impl<P: Send + Sync> ReliableSender<P>
Sourcepub fn new(rtt_resend_factor: f32, max_queue_depth: Option<usize>) -> Self
pub fn new(rtt_resend_factor: f32, max_queue_depth: Option<usize>) -> Self
Creates a ReliableSender with the given RTT resend factor and optional queue-depth cap.
Sourcepub fn take_next_messages(&mut self) -> VecDeque<(MessageIndex, P)>
pub fn take_next_messages(&mut self) -> VecDeque<(MessageIndex, P)>
Drains and returns all messages currently staged for transmission this tick.
Sourcepub fn deliver_message(&mut self, message_index: &MessageIndex) -> Option<P>
pub fn deliver_message(&mut self, message_index: &MessageIndex) -> Option<P>
Acknowledges delivery of message_index, removing it from the retransmit buffer and returning the message.
Trait Implementations§
Source§impl<P: Send + Sync + Clone> ChannelSender<P> for ReliableSender<P>
impl<P: Send + Sync + Clone> ChannelSender<P> for ReliableSender<P>
Source§fn send_message(&mut self, message: P) -> bool
fn send_message(&mut self, message: P) -> bool
Queues a Message to be transmitted to the remote host into an internal
buffer. Returns
true if the message was accepted, false if the
channel’s queue was full and the message was dropped (reliable) or the
oldest entry was evicted to make room (unreliable).Source§fn collect_messages(&mut self, now: &Instant, rtt_millis: &f32)
fn collect_messages(&mut self, now: &Instant, rtt_millis: &f32)
For reliable channels, will collect any Messages that need to be resent
Source§fn has_messages(&self) -> bool
fn has_messages(&self) -> bool
Returns true if there are queued Messages ready to be written
Source§fn notify_message_delivered(&mut self, message_index: &MessageIndex)
fn notify_message_delivered(&mut self, message_index: &MessageIndex)
Called when it receives acknowledgement that a Message has been received
Auto Trait Implementations§
impl<P> Freeze for ReliableSender<P>
impl<P> RefUnwindSafe for ReliableSender<P>where
P: RefUnwindSafe,
impl<P> Send for ReliableSender<P>
impl<P> Sync for ReliableSender<P>
impl<P> Unpin for ReliableSender<P>where
P: Unpin,
impl<P> UnsafeUnpin for ReliableSender<P>
impl<P> UnwindSafe for ReliableSender<P>where
P: UnwindSafe,
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