Trait DriverServerHandler

Source
pub trait DriverServerHandler<___T: Transport> {
    // Required methods
    fn start(
        &mut self,
        sender: &ServerSender<___T, Driver>,
        request: RequestBuffer<___T, Start>,
        responder: Responder<Start>,
    );
    fn stop(&mut self, sender: &ServerSender<___T, Driver>);

    // Provided method
    fn on_unknown_interaction(
        &mut self,
        sender: &ServerSender<___T, Driver>,
        ordinal: u64,
    ) { ... }
}
Expand description

A server handler for the Driver protocol.

See Driver for more details.

Required Methods§

Source

fn start( &mut self, sender: &ServerSender<___T, Driver>, request: RequestBuffer<___T, Start>, responder: Responder<Start>, )

Starts the driver with the given |start_args|.

Drivers should finish their initial setup and enumeration before returning from |Start|. In particular they should enumerate all currently available nodes by utilizing fuchsia.driver.framework/Node.AddChild and waiting for all calls to be completed.

The Framework will not consider the driver to be started until this call has returned successfully. Therefore a driver will not have |Stop| called on it until after it has replied to |Start| successfully.

If a driver returns an error, it will not have |Stop| called on it before the Driver Framework initiates shutdown of the driver’s dispatchers. Therefore it should have performed all necessary cleanup before returning an error.

Source

fn stop(&mut self, sender: &ServerSender<___T, Driver>)

Stops the driver. To stop, the driver should teardown any resources it set up in or after |Start|. This is a one-way FIDL method. When the driver has completed stopping, it should close its server end. Asynchronous operations should fully complete before closing the server end.

Provided Methods§

Source

fn on_unknown_interaction( &mut self, sender: &ServerSender<___T, Driver>, ordinal: u64, )

Implementors§