Trait RawDriverExt

Source
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§

Source

fn fd_user_define_open(&self, id: usize, buf: &[u8]) -> Result<Handle>

Source

fn fd_user_define_close(&self, id: usize, handle: Handle) -> Result<()>

Source

fn fd_user_define_clone(&self, handle: Handle) -> Result<Handle>

Source

fn file_open(&self, path: &str, mode: FileMode) -> Result<Handle>

Create new file

Source

fn file_write(&self, waker: Waker, handle: Handle, buf: &[u8]) -> Result<usize>

Source

fn file_read( &self, waker: Waker, handle: Handle, buf: &mut [u8], ) -> Result<usize>

Source

fn file_close(&self, handle: Handle) -> Result<()>

Close file handle

Source

fn timeout_open(&self, duration: Duration) -> Result<Handle>

Source

fn timeout(&self, waker: Waker, handle: Handle) -> Result<bool>

Source

fn timeout_close(&self, handle: Handle) -> Result<()>

Source

fn tcp_listener_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>

Create new TcpListener socket and bound to laddrs

Source

fn tcp_listener_accept( &self, waker: Waker, handle: Handle, ) -> Result<(Handle, SocketAddr)>

Accept one incoming TcpStream socket, may returns WOULD_BLOCK

Source

fn tcp_listener_close(&self, handle: Handle) -> Result<()>

Close TcpListener socket.

Source

fn tcp_stream_connect(&self, raddrs: &[SocketAddr]) -> Result<Handle>

Create new TcpStream socket and try connect to remote peer.

Source

fn tcp_stream_write( &self, waker: Waker, handle: Handle, buf: &[u8], ) -> Result<usize>

Write data to underly TcpStream

Source

fn tcp_stream_read( &self, waker: Waker, handle: Handle, buf: &mut [u8], ) -> Result<usize>

Read data from underly TcpStream

Source

fn tcp_stream_close(&self, handle: Handle) -> Result<()>

Close TcpStream socket.

Source

fn udp_socket_bind(&self, laddrs: &[SocketAddr]) -> Result<Handle>

Create a new UdpSocket and bind to laddrs

Source

fn udp_socket_sendto( &self, waker: Waker, handle: Handle, buf: &[u8], raddr: SocketAddr, ) -> Result<usize>

Send one datagram to raddr peer

Source

fn udp_socket_recv_from( &self, waker: Waker, handle: Handle, buf: &mut [u8], ) -> Result<(usize, SocketAddr)>

Recv one datagram from peer.

Source

fn udp_socket_close(&self, handle: Handle) -> Result<()>

Close UdpSocket

Source

fn poller_open(&self) -> Result<Handle>

Create new readiness io event poller.

Source

fn poller_clone(&self, handle: Handle) -> Result<Handle>

Clone pller handle.

Source

fn poller_register( &self, poller: Handle, source: Handle, interests: Interest, ) -> Result<()>

Register interests events of one source.

Source

fn poller_reregister( &self, poller: Handle, source: Handle, interests: Interest, ) -> Result<()>

Re-register interests events of one source.

Source

fn poller_deregister(&self, poller: Handle, source: Handle) -> Result<()>

Deregister interests events of one source.

Source

fn poller_poll_once( &self, handle: Handle, duration: Option<Duration>, ) -> Result<()>

Source

fn poller_close(&self, handle: Handle) -> Result<()>

Close poller

Source

fn tcp_listener_local_addr(&self, handle: Handle) -> Result<SocketAddr>

Source

fn tcp_stream_local_addr(&self, handle: Handle) -> Result<SocketAddr>

Source

fn tcp_stream_remote_addr(&self, handle: Handle) -> Result<SocketAddr>

Source

fn udp_local_addr(&self, handle: Handle) -> Result<SocketAddr>

Implementors§

Source§

impl<N, P> RawDriverExt for BasicMioDriver<N, P>
where N: MioNotifier + Clone, P: MioPoller + Default + Clone,