Skip to main content

ChannelLocalServerHandler

Trait ChannelLocalServerHandler 

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

    // Provided method
    fn on_unknown_interaction(
        &mut self,
        ordinal: u64,
    ) -> impl Future<Output = ()> { ... }
}
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 = ()>

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 = ()>

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 = ()>

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 = ()>

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<___H, ___T> ChannelLocalServerHandler<___T> for Local<___H>
where ___H: ChannelServerHandler<___T>, ___T: Transport,

Source§

async fn send_message( &mut self, request: Request<SendMessage, ___T>, responder: Responder<SendMessage, ___T>, )

Source§

async fn send_request( &mut self, request: Request<SendRequest, ___T>, responder: Responder<SendRequest, ___T>, )

Source§

async fn register_listener( &mut self, request: Request<RegisterListener, ___T>, responder: Responder<RegisterListener, ___T>, )

Source§

async fn on_unknown_interaction(&mut self, ordinal: u64)

Implementors§