Skip to main content

Handler

Trait Handler 

Source
pub trait Handler: Send + 'static {
    // Required methods
    fn on_downstream_data(&mut self, io: &mut SessionIo<'_>, data: &[u8]);
    fn on_upstream_connected(&mut self, io: &mut SessionIo<'_>);
    fn on_upstream_data(&mut self, io: &mut SessionIo<'_>, data: &[u8]);
    fn on_downstream_eof(&mut self, io: &mut SessionIo<'_>);
    fn on_upstream_eof(&mut self, io: &mut SessionIo<'_>);
    fn on_upstream_error(&mut self, io: &mut SessionIo<'_>, err: Error);

    // Provided methods
    fn on_connected(&mut self, io: &mut SessionIo<'_>) { ... }
    fn on_downstream_flushed(&mut self, io: &mut SessionIo<'_>) { ... }
    fn on_upstream_flushed(&mut self, io: &mut SessionIo<'_>) { ... }
    fn on_downstream_error(&mut self, io: &mut SessionIo<'_>, err: Error) { ... }
    fn on_shutdown_hint(&mut self, io: &mut SessionIo<'_>) { ... }
    fn on_deadline(&mut self, io: &mut SessionIo<'_>, reason: DeadlineReason) { ... }
}
Expand description

Per-connection handler. One instance is shared by all sessions of a worker (single-threaded dispatch; per-connection state lives in the session, reached through SessionIo).

Required Methods§

Source

fn on_downstream_data(&mut self, io: &mut SessionIo<'_>, data: &[u8])

Bytes arrived from the downstream (client) socket.

Source

fn on_upstream_connected(&mut self, io: &mut SessionIo<'_>)

Upstream connect established.

Source

fn on_upstream_data(&mut self, io: &mut SessionIo<'_>, data: &[u8])

Bytes arrived from the upstream (backend) socket.

Source

fn on_downstream_eof(&mut self, io: &mut SessionIo<'_>)

Downstream EOF (client half-closed).

Source

fn on_upstream_eof(&mut self, io: &mut SessionIo<'_>)

Upstream EOF.

Source

fn on_upstream_error(&mut self, io: &mut SessionIo<'_>, err: Error)

Upstream I/O error.

Provided Methods§

Source

fn on_connected(&mut self, io: &mut SessionIo<'_>)

A new downstream connection was accepted.

Source

fn on_downstream_flushed(&mut self, io: &mut SessionIo<'_>)

The queued downstream write batch fully flushed.

Source

fn on_upstream_flushed(&mut self, io: &mut SessionIo<'_>)

The queued upstream write batch fully flushed.

Source

fn on_downstream_error(&mut self, io: &mut SessionIo<'_>, err: Error)

Downstream I/O error (session should close).

Source

fn on_shutdown_hint(&mut self, io: &mut SessionIo<'_>)

Worker is draining (shutdown): finish in-flight work promptly.

Source

fn on_deadline(&mut self, io: &mut SessionIo<'_>, reason: DeadlineReason)

Session deadline expired; reason says which deadline.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§