pub struct Multiplex<C> { /* private fields */ }
Expand description
Multiplexer. Implements the StreamMuxer
trait.
This implementation isn’t capable of detecting when the underlying socket changes its address,
and no StreamMuxerEvent::AddressChange
event is ever emitted.
Trait Implementations
sourceimpl<C> StreamMuxer for Multiplex<C> where
C: AsyncRead + AsyncWrite + Unpin,
impl<C> StreamMuxer for Multiplex<C> where
C: AsyncRead + AsyncWrite + Unpin,
type Substream = Substream
type Substream = Substream
Type of the object that represents the raw substream where data can be read and written.
type OutboundSubstream = OutboundSubstream
type OutboundSubstream = OutboundSubstream
Future that will be resolved when the outgoing substream is open.
sourcepub fn poll_event(
&self,
cx: &mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<Multiplex<C> as StreamMuxer>::Substream>, Error>>
pub fn poll_event(
&self,
cx: &mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<Multiplex<C> as StreamMuxer>::Substream>, Error>>
Polls for a connection-wide event. Read more
sourcepub fn open_outbound(&self) -> <Multiplex<C> as StreamMuxer>::OutboundSubstream
pub fn open_outbound(&self) -> <Multiplex<C> as StreamMuxer>::OutboundSubstream
Opens a new outgoing substream, and produces the equivalent to a future that will be resolved when it becomes available. Read more
sourcepub fn poll_outbound(
&self,
cx: &mut Context<'_>,
&mut <Multiplex<C> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<Multiplex<C> as StreamMuxer>::Substream, Error>>
pub fn poll_outbound(
&self,
cx: &mut Context<'_>,
&mut <Multiplex<C> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<Multiplex<C> as StreamMuxer>::Substream, Error>>
Polls the outbound substream. Read more
sourcepub fn destroy_outbound(
&self,
_substream: <Multiplex<C> as StreamMuxer>::OutboundSubstream
)
pub fn destroy_outbound(
&self,
_substream: <Multiplex<C> as StreamMuxer>::OutboundSubstream
)
Destroys an outbound substream future. Use this after the outbound substream has finished, or if you want to interrupt it. Read more
sourcepub fn read_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
pub fn read_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
Reads data from a substream. The behaviour is the same as futures::AsyncRead::poll_read
. Read more
sourcepub fn write_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>
pub fn write_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>
Write data to a substream. The behaviour is the same as futures::AsyncWrite::poll_write
. Read more
sourcepub fn flush_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
pub fn flush_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
Flushes a substream. The behaviour is the same as futures::AsyncWrite::poll_flush
. Read more
sourcepub fn shutdown_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
pub fn shutdown_substream(
&self,
cx: &mut Context<'_>,
substream: &mut <Multiplex<C> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
Attempts to shut down the writing side of a substream. The behaviour is similar to
AsyncWrite::poll_close
. Read more
sourcepub fn destroy_substream(&self, sub: <Multiplex<C> as StreamMuxer>::Substream)
pub fn destroy_substream(&self, sub: <Multiplex<C> as StreamMuxer>::Substream)
Destroys a substream.
sourcepub fn close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
pub fn close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
Closes this StreamMuxer
. Read more
sourcepub fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
pub fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
Flush this StreamMuxer
. Read more
sourcefn is_remote_acknowledged(&self) -> bool
fn is_remote_acknowledged(&self) -> bool
This method is unused and will be removed in the future
Returns true
if the remote has shown any sign of activity after the muxer has been open. Read more
Auto Trait Implementations
impl<C> !RefUnwindSafe for Multiplex<C>
impl<C> Send for Multiplex<C> where
C: Send,
impl<C> Sync for Multiplex<C> where
C: Send,
impl<C> Unpin for Multiplex<C> where
C: Unpin,
impl<C> !UnwindSafe for Multiplex<C>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more