pub trait RawDriverExt {
Show 32 methods
// Required methods
fn fd_user_define_open(&self, id: usize, buf: &[u8]) -> Result<Handle>;
fn fd_user_define_close(&self, id: usize, handle: Handle) -> Result<()>;
fn fd_user_define_clone(&self, handle: Handle) -> Result<Handle>;
fn file_open(&self, path: &str, mode: FileMode) -> Result<Handle>;
fn file_write(
&self,
waker: Waker,
handle: Handle,
buf: &[u8],
) -> Result<usize>;
fn file_read(
&self,
waker: Waker,
handle: Handle,
buf: &mut [u8],
) -> Result<usize>;
fn file_close(&self, handle: Handle) -> Result<()>;
fn timeout_open(&self, duration: Duration) -> Result<Handle>;
fn timeout(&self, waker: Waker, handle: Handle) -> Result<bool>;
fn timeout_close(&self, handle: Handle) -> Result<()>;
fn tcp_listener_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>;
fn tcp_listener_accept(
&self,
waker: Waker,
handle: Handle,
) -> Result<(Handle, SocketAddr)>;
fn tcp_listener_close(&self, handle: Handle) -> Result<()>;
fn tcp_stream_connect(&self, raddrs: &[SocketAddr]) -> Result<Handle>;
fn tcp_stream_write(
&self,
waker: Waker,
handle: Handle,
buf: &[u8],
) -> Result<usize>;
fn tcp_stream_read(
&self,
waker: Waker,
handle: Handle,
buf: &mut [u8],
) -> Result<usize>;
fn tcp_stream_close(&self, handle: Handle) -> Result<()>;
fn udp_socket_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>;
fn udp_socket_sendto(
&self,
waker: Waker,
handle: Handle,
buf: &[u8],
raddr: SocketAddr,
) -> Result<usize>;
fn udp_socket_recv_from(
&self,
waker: Waker,
handle: Handle,
buf: &mut [u8],
) -> Result<(usize, SocketAddr)>;
fn udp_socket_close(&self, handle: Handle) -> Result<()>;
fn poller_open(&self) -> Result<Handle>;
fn poller_clone(&self, handle: Handle) -> Result<Handle>;
fn poller_register(
&self,
poller: Handle,
source: Handle,
interests: Interest,
) -> Result<()>;
fn poller_reregister(
&self,
poller: Handle,
source: Handle,
interests: Interest,
) -> Result<()>;
fn poller_deregister(&self, poller: Handle, source: Handle) -> Result<()>;
fn poller_poll_once(
&self,
handle: Handle,
duration: Option<Duration>,
) -> Result<()>;
fn poller_close(&self, handle: Handle) -> Result<()>;
fn tcp_listener_local_addr(&self, handle: Handle) -> Result<SocketAddr>;
fn tcp_stream_local_addr(&self, handle: Handle) -> Result<SocketAddr>;
fn tcp_stream_remote_addr(&self, handle: Handle) -> Result<SocketAddr>;
fn udp_local_addr(&self, handle: Handle) -> Result<SocketAddr>;
}
Expand description
Easier to implement version of RawDriver
trait
Required Methods§
fn fd_user_define_open(&self, id: usize, buf: &[u8]) -> Result<Handle>
fn fd_user_define_close(&self, id: usize, handle: Handle) -> Result<()>
fn fd_user_define_clone(&self, handle: Handle) -> Result<Handle>
fn file_write(&self, waker: Waker, handle: Handle, buf: &[u8]) -> Result<usize>
fn file_read( &self, waker: Waker, handle: Handle, buf: &mut [u8], ) -> Result<usize>
Sourcefn file_close(&self, handle: Handle) -> Result<()>
fn file_close(&self, handle: Handle) -> Result<()>
Close file handle
fn timeout_open(&self, duration: Duration) -> Result<Handle>
fn timeout(&self, waker: Waker, handle: Handle) -> Result<bool>
fn timeout_close(&self, handle: Handle) -> Result<()>
Sourcefn tcp_listener_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>
fn tcp_listener_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>
Create new TcpListener
socket and bound to laddrs
Sourcefn tcp_listener_accept(
&self,
waker: Waker,
handle: Handle,
) -> Result<(Handle, SocketAddr)>
fn tcp_listener_accept( &self, waker: Waker, handle: Handle, ) -> Result<(Handle, SocketAddr)>
Accept one incoming TcpStream
socket, may returns WOULD_BLOCK
Sourcefn tcp_listener_close(&self, handle: Handle) -> Result<()>
fn tcp_listener_close(&self, handle: Handle) -> Result<()>
Close TcpListener
socket.
Sourcefn tcp_stream_connect(&self, raddrs: &[SocketAddr]) -> Result<Handle>
fn tcp_stream_connect(&self, raddrs: &[SocketAddr]) -> Result<Handle>
Create new TcpStream
socket and try connect to remote peer.
Sourcefn tcp_stream_write(
&self,
waker: Waker,
handle: Handle,
buf: &[u8],
) -> Result<usize>
fn tcp_stream_write( &self, waker: Waker, handle: Handle, buf: &[u8], ) -> Result<usize>
Write data to underly TcpStream
Sourcefn tcp_stream_read(
&self,
waker: Waker,
handle: Handle,
buf: &mut [u8],
) -> Result<usize>
fn tcp_stream_read( &self, waker: Waker, handle: Handle, buf: &mut [u8], ) -> Result<usize>
Read data from underly TcpStream
Sourcefn tcp_stream_close(&self, handle: Handle) -> Result<()>
fn tcp_stream_close(&self, handle: Handle) -> Result<()>
Close TcpStream
socket.
Sourcefn udp_socket_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>
fn udp_socket_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>
Create a new UdpSocket
and bind to laddrs
Sourcefn udp_socket_sendto(
&self,
waker: Waker,
handle: Handle,
buf: &[u8],
raddr: SocketAddr,
) -> Result<usize>
fn udp_socket_sendto( &self, waker: Waker, handle: Handle, buf: &[u8], raddr: SocketAddr, ) -> Result<usize>
Send one datagram to raddr
peer
Sourcefn udp_socket_recv_from(
&self,
waker: Waker,
handle: Handle,
buf: &mut [u8],
) -> Result<(usize, SocketAddr)>
fn udp_socket_recv_from( &self, waker: Waker, handle: Handle, buf: &mut [u8], ) -> Result<(usize, SocketAddr)>
Recv one datagram from peer.
Sourcefn udp_socket_close(&self, handle: Handle) -> Result<()>
fn udp_socket_close(&self, handle: Handle) -> Result<()>
Close UdpSocket
Sourcefn poller_open(&self) -> Result<Handle>
fn poller_open(&self) -> Result<Handle>
Create new readiness io event poller.
Sourcefn poller_clone(&self, handle: Handle) -> Result<Handle>
fn poller_clone(&self, handle: Handle) -> Result<Handle>
Clone pller handle.
Sourcefn poller_register(
&self,
poller: Handle,
source: Handle,
interests: Interest,
) -> Result<()>
fn poller_register( &self, poller: Handle, source: Handle, interests: Interest, ) -> Result<()>
Register interests events of one source.
Sourcefn poller_reregister(
&self,
poller: Handle,
source: Handle,
interests: Interest,
) -> Result<()>
fn poller_reregister( &self, poller: Handle, source: Handle, interests: Interest, ) -> Result<()>
Re-register interests events of one source.
Sourcefn poller_deregister(&self, poller: Handle, source: Handle) -> Result<()>
fn poller_deregister(&self, poller: Handle, source: Handle) -> Result<()>
Deregister interests events of one source.
fn poller_poll_once( &self, handle: Handle, duration: Option<Duration>, ) -> Result<()>
Sourcefn poller_close(&self, handle: Handle) -> Result<()>
fn poller_close(&self, handle: Handle) -> Result<()>
Close poller