Struct tokio::net::unix::OwnedWriteHalf
source · pub struct OwnedWriteHalf { /* private fields */ }
net
only.Expand description
Owned write half of a UnixStream
, created by into_split
.
Note that in the AsyncWrite
implementation of this type,
poll_shutdown
will shut down the stream in the write direction.
Dropping the write half will also shut down the write half of the stream.
Writing to an OwnedWriteHalf
is usually done using the convenience methods
found on the AsyncWriteExt
trait.
Implementations§
source§impl OwnedWriteHalf
impl OwnedWriteHalf
sourcepub fn reunite(self, other: OwnedReadHalf) -> Result<UnixStream, ReuniteError>
pub fn reunite(self, other: OwnedReadHalf) -> Result<UnixStream, ReuniteError>
Attempts to put the two halves of a UnixStream
back together and
recover the original socket. Succeeds only if the two halves
originated from the same call to into_split
.
sourcepub fn forget(self)
pub fn forget(self)
Destroys the write half, but don’t close the write half of the stream until the read half is dropped. If the read half has already been dropped, this closes the stream.
sourcepub async fn ready(&self, interest: Interest) -> Result<Ready>
pub async fn ready(&self, interest: Interest) -> Result<Ready>
Waits for any of the requested ready states.
This function is usually paired with try_read()
or try_write()
. It
can be used to concurrently read / write to the same socket on a single
task without splitting the socket.
The function may complete without the socket being ready. This is a
false-positive and attempting an operation will return with
io::ErrorKind::WouldBlock
. The function can also return with an empty
Ready
set, so you should always check the returned value and possibly
wait again if the requested states are not set.
Cancel safety
This method is cancel safe. Once a readiness event occurs, the method
will continue to return immediately until the readiness event is
consumed by an attempt to read or write that fails with WouldBlock
or
Poll::Pending
.
sourcepub async fn writable(&self) -> Result<()>
pub async fn writable(&self) -> Result<()>
Waits for the socket to become writable.
This function is equivalent to ready(Interest::WRITABLE)
and is usually
paired with try_write()
.
Cancel safety
This method is cancel safe. Once a readiness event occurs, the method
will continue to return immediately until the readiness event is
consumed by an attempt to write that fails with WouldBlock
or
Poll::Pending
.
sourcepub fn try_write(&self, buf: &[u8]) -> Result<usize>
pub fn try_write(&self, buf: &[u8]) -> Result<usize>
Tries to write a buffer to the stream, returning how many bytes were written.
The function will attempt to write the entire contents of buf
, but
only part of the buffer may be written.
This function is usually paired with writable()
.
Return
If data is successfully written, Ok(n)
is returned, where n
is the
number of bytes written. If the stream is not ready to write data,
Err(io::ErrorKind::WouldBlock)
is returned.
sourcepub fn try_write_vectored(&self, buf: &[IoSlice<'_>]) -> Result<usize>
pub fn try_write_vectored(&self, buf: &[IoSlice<'_>]) -> Result<usize>
Tries to write several buffers to the stream, returning how many bytes were written.
Data is written from each buffer in order, with the final buffer read
from possible being only partially consumed. This method behaves
equivalently to a single call to try_write()
with concatenated
buffers.
This function is usually paired with writable()
.
Return
If data is successfully written, Ok(n)
is returned, where n
is the
number of bytes written. If the stream is not ready to write data,
Err(io::ErrorKind::WouldBlock)
is returned.
sourcepub fn peer_addr(&self) -> Result<SocketAddr>
pub fn peer_addr(&self) -> Result<SocketAddr>
Returns the socket address of the remote half of this connection.
sourcepub fn local_addr(&self) -> Result<SocketAddr>
pub fn local_addr(&self) -> Result<SocketAddr>
Returns the socket address of the local half of this connection.
Trait Implementations§
source§impl AsRef<UnixStream> for OwnedWriteHalf
impl AsRef<UnixStream> for OwnedWriteHalf
source§fn as_ref(&self) -> &UnixStream
fn as_ref(&self) -> &UnixStream
source§impl AsyncWrite for OwnedWriteHalf
impl AsyncWrite for OwnedWriteHalf
source§fn poll_write(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize>>
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8] ) -> Poll<Result<usize>>
buf
into the object. Read moresource§fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize>>
fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>] ) -> Poll<Result<usize>>
poll_write
, except that it writes from a slice of buffers. Read moresource§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
poll_write_vectored
implementation. Read moresource§impl Debug for OwnedWriteHalf
impl Debug for OwnedWriteHalf
Auto Trait Implementations§
impl RefUnwindSafe for OwnedWriteHalf
impl Send for OwnedWriteHalf
impl Sync for OwnedWriteHalf
impl Unpin for OwnedWriteHalf
impl UnwindSafe for OwnedWriteHalf
Blanket Implementations§
source§impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
impl<W> AsyncWriteExt for Wwhere W: AsyncWrite + ?Sized,
source§fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where Self: Unpin,
io-util
only.source§fn write_vectored<'a, 'b>(
&'a mut self,
bufs: &'a [IoSlice<'b>]
) -> WriteVectored<'a, 'b, Self>where
Self: Unpin,
fn write_vectored<'a, 'b>( &'a mut self, bufs: &'a [IoSlice<'b>] ) -> WriteVectored<'a, 'b, Self>where Self: Unpin,
io-util
only.source§fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>where
Self: Sized + Unpin,
B: Buf,
fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>where Self: Sized + Unpin, B: Buf,
io-util
only.source§fn write_all_buf<'a, B>(
&'a mut self,
src: &'a mut B
) -> WriteAllBuf<'a, Self, B>where
Self: Sized + Unpin,
B: Buf,
fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B ) -> WriteAllBuf<'a, Self, B>where Self: Sized + Unpin, B: Buf,
io-util
only.source§fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where
Self: Unpin,
fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where Self: Unpin,
io-util
only.source§fn write_u8<'a>(&'a mut self, n: u8) -> WriteU8<&'a mut Self>where
Self: Unpin,
fn write_u8<'a>(&'a mut self, n: u8) -> WriteU8<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i8<'a>(&'a mut self, n: i8) -> WriteI8<&'a mut Self>where
Self: Unpin,
fn write_i8<'a>(&'a mut self, n: i8) -> WriteI8<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u16<'a>(&'a mut self, n: u16) -> WriteU16<&'a mut Self>where
Self: Unpin,
fn write_u16<'a>(&'a mut self, n: u16) -> WriteU16<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i16<'a>(&'a mut self, n: i16) -> WriteI16<&'a mut Self>where
Self: Unpin,
fn write_i16<'a>(&'a mut self, n: i16) -> WriteI16<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u32<'a>(&'a mut self, n: u32) -> WriteU32<&'a mut Self>where
Self: Unpin,
fn write_u32<'a>(&'a mut self, n: u32) -> WriteU32<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i32<'a>(&'a mut self, n: i32) -> WriteI32<&'a mut Self>where
Self: Unpin,
fn write_i32<'a>(&'a mut self, n: i32) -> WriteI32<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u64<'a>(&'a mut self, n: u64) -> WriteU64<&'a mut Self>where
Self: Unpin,
fn write_u64<'a>(&'a mut self, n: u64) -> WriteU64<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i64<'a>(&'a mut self, n: i64) -> WriteI64<&'a mut Self>where
Self: Unpin,
fn write_i64<'a>(&'a mut self, n: i64) -> WriteI64<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u128<'a>(&'a mut self, n: u128) -> WriteU128<&'a mut Self>where
Self: Unpin,
fn write_u128<'a>(&'a mut self, n: u128) -> WriteU128<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i128<'a>(&'a mut self, n: i128) -> WriteI128<&'a mut Self>where
Self: Unpin,
fn write_i128<'a>(&'a mut self, n: i128) -> WriteI128<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_f32<'a>(&'a mut self, n: f32) -> WriteF32<&'a mut Self>where
Self: Unpin,
fn write_f32<'a>(&'a mut self, n: f32) -> WriteF32<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_f64<'a>(&'a mut self, n: f64) -> WriteF64<&'a mut Self>where
Self: Unpin,
fn write_f64<'a>(&'a mut self, n: f64) -> WriteF64<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u16_le<'a>(&'a mut self, n: u16) -> WriteU16Le<&'a mut Self>where
Self: Unpin,
fn write_u16_le<'a>(&'a mut self, n: u16) -> WriteU16Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i16_le<'a>(&'a mut self, n: i16) -> WriteI16Le<&'a mut Self>where
Self: Unpin,
fn write_i16_le<'a>(&'a mut self, n: i16) -> WriteI16Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u32_le<'a>(&'a mut self, n: u32) -> WriteU32Le<&'a mut Self>where
Self: Unpin,
fn write_u32_le<'a>(&'a mut self, n: u32) -> WriteU32Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i32_le<'a>(&'a mut self, n: i32) -> WriteI32Le<&'a mut Self>where
Self: Unpin,
fn write_i32_le<'a>(&'a mut self, n: i32) -> WriteI32Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u64_le<'a>(&'a mut self, n: u64) -> WriteU64Le<&'a mut Self>where
Self: Unpin,
fn write_u64_le<'a>(&'a mut self, n: u64) -> WriteU64Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i64_le<'a>(&'a mut self, n: i64) -> WriteI64Le<&'a mut Self>where
Self: Unpin,
fn write_i64_le<'a>(&'a mut self, n: i64) -> WriteI64Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_u128_le<'a>(&'a mut self, n: u128) -> WriteU128Le<&'a mut Self>where
Self: Unpin,
fn write_u128_le<'a>(&'a mut self, n: u128) -> WriteU128Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_i128_le<'a>(&'a mut self, n: i128) -> WriteI128Le<&'a mut Self>where
Self: Unpin,
fn write_i128_le<'a>(&'a mut self, n: i128) -> WriteI128Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_f32_le<'a>(&'a mut self, n: f32) -> WriteF32Le<&'a mut Self>where
Self: Unpin,
fn write_f32_le<'a>(&'a mut self, n: f32) -> WriteF32Le<&'a mut Self>where Self: Unpin,
io-util
only.source§fn write_f64_le<'a>(&'a mut self, n: f64) -> WriteF64Le<&'a mut Self>where
Self: Unpin,
fn write_f64_le<'a>(&'a mut self, n: f64) -> WriteF64Le<&'a mut Self>where Self: Unpin,
io-util
only.