Struct libp2p::core::muxing::SingletonMuxer [−][src]
pub struct SingletonMuxer<TSocket> { /* fields omitted */ }Expand description
Implementation of StreamMuxer that allows only one substream on top of a connection,
yielding the connection itself.
Applying this muxer on a connection doesn’t read or write any data on the connection itself. Most notably, no protocol is negotiated.
Implementations
Creates a new SingletonMuxer.
If endpoint is Dialer, then only one outbound substream will be permitted.
If endpoint is Listener, then only one inbound substream will be permitted.
Trait Implementations
impl<TSocket> StreamMuxer for SingletonMuxer<TSocket> where
TSocket: AsyncRead + AsyncWrite + Unpin, [src]
impl<TSocket> StreamMuxer for SingletonMuxer<TSocket> where
TSocket: AsyncRead + AsyncWrite + Unpin, [src]type Substream = Substream
type Substream = SubstreamType of the object that represents the raw substream where data can be read and written.
type OutboundSubstream = OutboundSubstream
type OutboundSubstream = OutboundSubstreamFuture that will be resolved when the outgoing substream is open.
pub fn poll_event(
&self,
&mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<SingletonMuxer<TSocket> as StreamMuxer>::Substream>, Error>>[src]
pub fn poll_event(
&self,
&mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<SingletonMuxer<TSocket> as StreamMuxer>::Substream>, Error>>[src]Polls for a connection-wide event. Read more
Opens a new outgoing substream, and produces the equivalent to a future that will be resolved when it becomes available. Read more
pub fn poll_outbound(
&self,
&mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<SingletonMuxer<TSocket> as StreamMuxer>::Substream, Error>>[src]
pub fn poll_outbound(
&self,
&mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<SingletonMuxer<TSocket> as StreamMuxer>::Substream, Error>>[src]Polls the outbound substream. Read more
Destroys an outbound substream future. Use this after the outbound substream has finished, or if you want to interrupt it. Read more
pub fn read_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>[src]
pub fn read_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>[src]Reads data from a substream. The behaviour is the same as futures::AsyncRead::poll_read. Read more
pub fn write_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>[src]
pub fn write_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>[src]Write data to a substream. The behaviour is the same as futures::AsyncWrite::poll_write. Read more
pub fn flush_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>[src]
pub fn flush_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>[src]Flushes a substream. The behaviour is the same as futures::AsyncWrite::poll_flush. Read more
pub fn shutdown_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>[src]
pub fn shutdown_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>[src]Attempts to shut down the writing side of a substream. The behaviour is similar to
AsyncWrite::poll_close. Read more
Destroys a substream.
Closes this StreamMuxer. Read more
Flush this StreamMuxer. Read more
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<TSocket> !RefUnwindSafe for SingletonMuxer<TSocket>impl<TSocket> Send for SingletonMuxer<TSocket> where
TSocket: Send, impl<TSocket> Sync for SingletonMuxer<TSocket> where
TSocket: Send, impl<TSocket> Unpin for SingletonMuxer<TSocket> where
TSocket: Unpin, impl<TSocket> UnwindSafe for SingletonMuxer<TSocket> where
TSocket: UnwindSafe,