Trait compio_driver::OpCode

source ·
pub trait OpCode {
    // Required methods
    fn pre_submit(self: Pin<&mut Self>) -> Result<Decision>;
    fn on_event(self: Pin<&mut Self>, event: &Event) -> Poll<Result<usize>>;

    // Provided method
    fn is_nonblocking(&self) -> bool { ... }
}
Expand description

Abstraction of operations.

Required Methods§

source

fn pre_submit(self: Pin<&mut Self>) -> Result<Decision>

Perform the operation before submit, and return Decision to indicate whether submitting the operation to polling is required.

source

fn on_event(self: Pin<&mut Self>, event: &Event) -> Poll<Result<usize>>

Perform the operation after received corresponding event.

Provided Methods§

source

fn is_nonblocking(&self) -> bool

Determines that the operation is really non-blocking defined by POSIX. If not, the driver will try to operate it in another thread.

Implementors§