Trait hydrogen::Handler [] [src]

pub trait Handler {
    fn on_server_created(&mut self, fd: RawFd);
    fn on_new_connection(&mut self, fd: RawFd) -> Arc<UnsafeCell<Stream>>;
    fn on_data_received(&mut self, socket: HydrogenSocket, buf: Vec<u8>);
    fn on_connection_removed(&mut self, fd: RawFd, err: Error);
}

Events reported to lib consumer.

Required Methods

fn on_server_created(&mut self, fd: RawFd)

This method is called once the listening RawFd has been created.

It should be used to set/remove any flags on the underlying RawFd before listen is called on the fd.

fn on_new_connection(&mut self, fd: RawFd) -> Arc<UnsafeCell<Stream>>

This method is called whenever accept returns a new TCP connection.

The returned trait object is added to the connection pool and the epoll interest list.

fn on_data_received(&mut self, socket: HydrogenSocket, buf: Vec<u8>)

This method is called whenever the recv call returns an Ok(_) result.

fn on_connection_removed(&mut self, fd: RawFd, err: Error)

This method is called after a stream has been removed from the connection poll and epoll interest list, with the std::io::Error as the reason removed.

At the time of this call, the underlying fd has been shutdown and closed. No system level shutdown is needed, only application level cleanup.

Implementors