Skip to main content

ChannelServerHandler

Trait ChannelServerHandler 

Source
pub trait ChannelServerHandler<___T: Transport = Channel> {
    // Required methods
    fn send_message(
        &mut self,
        request: Request<SendMessage, ___T>,
        responder: Responder<SendMessage, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn send_request(
        &mut self,
        request: Request<SendRequest, ___T>,
        responder: Responder<SendRequest, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn register_listener(
        &mut self,
        request: Request<RegisterListener, ___T>,
        responder: Responder<RegisterListener, ___T>,
    ) -> impl Future<Output = ()> + Send;

    // Provided method
    fn on_unknown_interaction(
        &mut self,
        ordinal: u64,
    ) -> impl Future<Output = ()> + Send { ... }
}
Expand description

A server handler for the Channel protocol.

See Channel for more details.

Required Methods§

Source

fn send_message( &mut self, request: Request<SendMessage, ___T>, responder: Responder<SendMessage, ___T>, ) -> impl Future<Output = ()> + Send

Writes the message to the mailbox, interrupts the destination core, and (if applicable) waits for the destination core to ack the message.

Returns ZX_ERR_OUT_OF_RANGE if message is larger than what the hardware can support.

Source

fn send_request( &mut self, request: Request<SendRequest, ___T>, responder: Responder<SendRequest, ___T>, ) -> impl Future<Output = ()> + Send

Writes the request to the mailbox, interrupts the destination core, and waits for the destination core to send a response.

Returns ZX_ERR_OUT_OF_RANGE if request is larger than what the hardware can support. Returns ZX_ERR_NOT_SUPPORTED if the destination core does not support correlating requests to responses.

Source

fn register_listener( &mut self, request: Request<RegisterListener, ___T>, responder: Responder<RegisterListener, ___T>, ) -> impl Future<Output = ()> + Send

Registers a listener for incoming messages on this channel. Multiple listeners may NOT be registered at a time. If a listener is already registered, this call will fail with ZX_ERR_ALREADY_BOUND.

To unregister a listener, the server will close its end of the channel. Another listener may be registered after the previous listener has been unregistered.

Provided Methods§

Source

fn on_unknown_interaction( &mut self, ordinal: u64, ) -> impl Future<Output = ()> + Send

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§