pub struct SessionSynchronousProxy { /* private fields */ }
Implementations§
source§impl SessionSynchronousProxy
impl SessionSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
sourcepub fn wait_for_event(&self, deadline: Time) -> Result<SessionEvent, Error>
pub fn wait_for_event(&self, deadline: Time) -> Result<SessionEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
sourcepub fn attach(
&self,
port: &mut PortId,
rx_frames: &mut dyn ExactSizeIterator<Item = FrameType>,
___deadline: Time
) -> Result<SessionAttachResult, Error>
pub fn attach( &self, port: &mut PortId, rx_frames: &mut dyn ExactSizeIterator<Item = FrameType>, ___deadline: Time ) -> Result<SessionAttachResult, Error>
Attaches the session to port
.
Once attached, the session starts to receive the subscribed frames over
the data FIFOs and it may send frames destined to the specified port
.
- request
port
port to subscribe to. - request
rx_frames
Frame types of interest on the port.
- error
ZX_ERR_NOT_FOUND
ifport
is not valid. - error
ZX_ERR_INVALID_ARGS
ifrx_frames
is not a subset of the port’s supported frames. - error
ZX_ERR_ALREADY_BOUND
ifport
is already attached.
sourcepub fn detach(
&self,
port: &mut PortId,
___deadline: Time
) -> Result<SessionDetachResult, Error>
pub fn detach( &self, port: &mut PortId, ___deadline: Time ) -> Result<SessionDetachResult, Error>
Detaches the session from port
.
Once detached, the session stops receiving frames from port
. Frames
sent to a detached port may be returned with an error. It is not
necessary to call Detach
on ports that are removed from the device,
doing so causes ZX_ERR_NOT_FOUND
to be returned.
- request
port
port to subscribe to.
- error
ZX_ERR_NOT_FOUND
if the session is not currently attached to the port.
sourcepub fn close(&self) -> Result<(), Error>
pub fn close(&self) -> Result<(), Error>
Cleanly closes a session.
This will cause the session to send a ZX_ERR_CANCELLED
epitaph and
proceed to close the Session channel. Clients may only assume that they
own all the buffers that are currently owned by the session (sent over
either the rx or tx FIFOs) once the epitaph is received. Closing the rx
or tx FIFO is equivalent to calling Close
.