pub struct ConnectionManager { /* private fields */ }Expand description
Manages multiple UDP peer connections over a single local socket.
Implementations§
Source§impl ConnectionManager
impl ConnectionManager
Sourcepub fn bind(local_addr: SocketAddr) -> Result<Self, Error>
pub fn bind(local_addr: SocketAddr) -> Result<Self, Error>
Create a ConnectionManager bound to local_addr.
Sourcepub fn connect(&mut self, addr: SocketAddr)
pub fn connect(&mut self, addr: SocketAddr)
Initiate a connection to addr.
Sourcepub fn disconnect(&mut self, addr: SocketAddr)
pub fn disconnect(&mut self, addr: SocketAddr)
Gracefully disconnect a peer.
Sourcepub fn send(&mut self, addr: SocketAddr, channel: Channel, data: Vec<u8>)
pub fn send(&mut self, addr: SocketAddr, channel: Channel, data: Vec<u8>)
Send data to addr on channel. Fragments if larger than MTU.
Sourcepub fn send_packet(
&mut self,
addr: SocketAddr,
channel: Channel,
packet: Packet,
)
pub fn send_packet( &mut self, addr: SocketAddr, channel: Channel, packet: Packet, )
Send a typed Packet to addr on channel.
Sourcepub fn poll(&mut self) -> Vec<ReceivedPacket>
pub fn poll(&mut self) -> Vec<ReceivedPacket>
Poll the socket for incoming datagrams and drive retransmits. Returns all application-level packets received this frame.
Sourcepub fn peer_state(&self, addr: SocketAddr) -> Option<ConnectionState>
pub fn peer_state(&self, addr: SocketAddr) -> Option<ConnectionState>
Returns the current state of a peer connection.
Sourcepub fn peer_stats(&self, addr: SocketAddr) -> Option<&TransportStats>
pub fn peer_stats(&self, addr: SocketAddr) -> Option<&TransportStats>
Returns transport stats for a peer.
Sourcepub fn peer_count(&self) -> usize
pub fn peer_count(&self) -> usize
Returns count of connected peers.
Sourcepub fn peer_addrs(&self) -> Vec<SocketAddr>
pub fn peer_addrs(&self) -> Vec<SocketAddr>
Returns all connected peer addresses.
Auto Trait Implementations§
impl Freeze for ConnectionManager
impl RefUnwindSafe for ConnectionManager
impl Send for ConnectionManager
impl Sync for ConnectionManager
impl Unpin for ConnectionManager
impl UnsafeUnpin for ConnectionManager
impl UnwindSafe for ConnectionManager
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.