pub trait VirtualTcpSocket: VirtualConnectedSocket + Debug + Send + Sync + 'static {
    // Required methods
    fn set_recv_buf_size(&mut self, size: usize) -> Result<()>;
    fn recv_buf_size(&self) -> Result<usize>;
    fn set_send_buf_size(&mut self, size: usize) -> Result<()>;
    fn send_buf_size(&self) -> Result<usize>;
    fn set_nodelay(&mut self, reuse: bool) -> Result<()>;
    fn nodelay(&self) -> Result<bool>;
    fn addr_peer(&self) -> Result<SocketAddr>;
    fn shutdown(&mut self, how: Shutdown) -> Result<()>;
    fn is_closed(&self) -> bool;
}

Required Methods§

source

fn set_recv_buf_size(&mut self, size: usize) -> Result<()>

Sets the receive buffer size which acts as a trottle for how much data is buffered on this side of the pipe

source

fn recv_buf_size(&self) -> Result<usize>

Size of the receive buffer that holds all data that has not yet been read

source

fn set_send_buf_size(&mut self, size: usize) -> Result<()>

Sets the size of the send buffer which will hold the bytes of data while they are being sent over to the peer

source

fn send_buf_size(&self) -> Result<usize>

Size of the send buffer that holds all data that is currently being transmitted.

source

fn set_nodelay(&mut self, reuse: bool) -> Result<()>

When NO_DELAY is set the data that needs to be transmitted to the peer is sent immediately rather than waiting for a bigger batch of data, this reduces latency but increases encapsulation overhead.

source

fn nodelay(&self) -> Result<bool>

Indicates if the NO_DELAY flag is set which means that data is immediately sent to the peer without waiting. This reduces latency but increases encapsulation overhead.

source

fn addr_peer(&self) -> Result<SocketAddr>

Returns the address (IP and Port) of the peer socket that this is conencted to

source

fn shutdown(&mut self, how: Shutdown) -> Result<()>

Shuts down either the READER or WRITER sides of the socket connection.

source

fn is_closed(&self) -> bool

Return true if the socket is closed

Trait Implementations§

source§

impl<'a> AsyncRead for Box<dyn VirtualTcpSocket + Sync + 'a>

source§

fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_> ) -> Poll<Result<()>>

Attempts to read from the AsyncRead into buf. Read more
source§

impl<'a> AsyncWrite for Box<dyn VirtualTcpSocket + Sync + 'a>

source§

fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8] ) -> Poll<Result<usize>>

Attempt to write bytes from buf into the object. Read more
source§

fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>

Attempts to flush the object, ensuring that any buffered data reach their destination. Read more
source§

fn poll_shutdown( self: Pin<&mut Self>, _cx: &mut Context<'_> ) -> Poll<Result<()>>

Initiates or attempts to shut down this writer, returning success when the I/O connection has completely shut down. Read more
source§

fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>] ) -> Poll<Result<usize, Error>>

Like poll_write, except that it writes from a slice of buffers. Read more
source§

fn is_write_vectored(&self) -> bool

Determines if this writer has an efficient poll_write_vectored implementation. Read more

Implementors§