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§
Sourcefn send_message(
&mut self,
request: Request<SendMessage, ___T>,
responder: Responder<SendMessage, ___T>,
) -> impl Future<Output = ()> + Send
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.
Sourcefn send_request(
&mut self,
request: Request<SendRequest, ___T>,
responder: Responder<SendRequest, ___T>,
) -> impl Future<Output = ()> + Send
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.
Sourcefn register_listener(
&mut self,
request: Request<RegisterListener, ___T>,
responder: Responder<RegisterListener, ___T>,
) -> impl Future<Output = ()> + Send
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§
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.