Trait virtual_net::VirtualTcpSocket
source · pub trait VirtualTcpSocket: VirtualConnectedSocket + Debug + Send + Sync + 'static {
Show 13 methods
// 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 set_keepalive(&mut self, keepalive: bool) -> Result<()>;
fn keepalive(&self) -> Result<bool>;
fn set_dontroute(&mut self, keepalive: bool) -> Result<()>;
fn dontroute(&self) -> Result<bool>;
fn addr_peer(&self) -> Result<SocketAddr>;
fn shutdown(&mut self, how: Shutdown) -> Result<()>;
fn is_closed(&self) -> bool;
}
Required Methods§
sourcefn set_recv_buf_size(&mut self, size: usize) -> Result<()>
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
sourcefn recv_buf_size(&self) -> Result<usize>
fn recv_buf_size(&self) -> Result<usize>
Size of the receive buffer that holds all data that has not yet been read
sourcefn set_send_buf_size(&mut self, size: usize) -> Result<()>
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
sourcefn send_buf_size(&self) -> Result<usize>
fn send_buf_size(&self) -> Result<usize>
Size of the send buffer that holds all data that is currently being transmitted.
sourcefn set_nodelay(&mut self, reuse: bool) -> Result<()>
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.
sourcefn nodelay(&self) -> Result<bool>
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.
sourcefn set_keepalive(&mut self, keepalive: bool) -> Result<()>
fn set_keepalive(&mut self, keepalive: bool) -> Result<()>
When KEEP_ALIVE is set the connection will periodically send an empty data packet to the server to make sure the connection stays alive.
sourcefn keepalive(&self) -> Result<bool>
fn keepalive(&self) -> Result<bool>
Indicates if the KEEP_ALIVE flag is set which means that the socket will periodically send an empty data packet to keep the connection alive.
sourcefn set_dontroute(&mut self, keepalive: bool) -> Result<()>
fn set_dontroute(&mut self, keepalive: bool) -> Result<()>
When DONT_ROUTE is set the packet will be sent directly to the interface without passing through the routing logic.
sourcefn dontroute(&self) -> Result<bool>
fn dontroute(&self) -> Result<bool>
Indicates if the packet will pass straight through to the interface bypassing the routing logic.
sourcefn addr_peer(&self) -> Result<SocketAddr>
fn addr_peer(&self) -> Result<SocketAddr>
Returns the address (IP and Port) of the peer socket that this is conencted to
Trait Implementations§
source§impl<'a> AsyncWrite for Box<dyn VirtualTcpSocket + Sync + 'a>
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>>
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8] ) -> Poll<Result<usize>>
buf
into the object. Read moresource§fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>
fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>
source§fn poll_shutdown(
self: Pin<&mut Self>,
_cx: &mut Context<'_>
) -> Poll<Result<()>>
fn poll_shutdown( self: Pin<&mut Self>, _cx: &mut Context<'_> ) -> Poll<Result<()>>
source§fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>] ) -> Poll<Result<usize, Error>>
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 more