pub struct RWHandle<T, S: RWHandleSpec = DefaultRWHandleSpec> { /* private fields */ }Expand description
A Handle that receives notifications when it is readable/writable.
Implementations§
Source§impl<T> RWHandle<T, DefaultRWHandleSpec>where
T: AsHandleRef,
impl<T> RWHandle<T, DefaultRWHandleSpec>where
T: AsHandleRef,
Source§impl<T, S> RWHandle<T, S>where
T: AsHandleRef,
S: RWHandleSpec,
impl<T, S> RWHandle<T, S>where
T: AsHandleRef,
S: RWHandleSpec,
Sourcepub fn new_with_spec(handle: T) -> Self
pub fn new_with_spec(handle: T) -> Self
Creates a new RWHandle with a non-default spec and an object which
will receive notifications when the underlying handle becomes readable,
writable, or closes.
§Panics
If called outside the context of an active async executor.
If S::READABLE_SIGNALS or S::WRITABLE_SIGNALS contain
zx::Signals::OBJECT_PEER_CLOSED or have a non-empty intersection.
Sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Consumes self and returns the underlying handle.
Sourcepub fn is_closed(&self) -> bool
pub fn is_closed(&self) -> bool
Returns true if the object received the OBJECT_PEER_CLOSED signal.
Sourcepub fn on_closed(&self) -> OnSignalsRef<'_>
pub fn on_closed(&self) -> OnSignalsRef<'_>
Returns a future that completes when is_closed() is true.
Trait Implementations§
Source§impl<T, S> ReadableHandle for RWHandle<T, S>where
T: AsHandleRef,
S: RWHandleSpec,
impl<T, S> ReadableHandle for RWHandle<T, S>where
T: AsHandleRef,
S: RWHandleSpec,
Source§fn poll_readable(
&self,
cx: &mut Context<'_>,
) -> Poll<Result<ReadableState, Status>>
fn poll_readable( &self, cx: &mut Context<'_>, ) -> Poll<Result<ReadableState, Status>>
If the object is ready for reading, returns
Ready with the readable
state. If the implementor returns Pending, it should first ensure that
need_readable is called. Read moreSource§fn need_readable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
fn need_readable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
Arranges for the current task to be woken when the object receives an
OBJECT_READABLE or OBJECT_PEER_CLOSED signal. This can return
Poll::Ready if the object has already been signaled in which case the
waker will not be woken and it is the caller’s responsibility to not
lose the signal.Source§impl<T, S> WritableHandle for RWHandle<T, S>where
T: AsHandleRef,
S: RWHandleSpec,
impl<T, S> WritableHandle for RWHandle<T, S>where
T: AsHandleRef,
S: RWHandleSpec,
Source§fn poll_writable(
&self,
cx: &mut Context<'_>,
) -> Poll<Result<WritableState, Status>>
fn poll_writable( &self, cx: &mut Context<'_>, ) -> Poll<Result<WritableState, Status>>
If the object is ready for writing, returns
Ready with the writable
state. If the implementor returns Pending, it should first ensure that
need_writable is called. Read moreSource§fn need_writable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
fn need_writable(&self, cx: &mut Context<'_>) -> Poll<Result<(), Status>>
Arranges for the current task to be woken when the object receives an
OBJECT_WRITABLE or OBJECT_PEER_CLOSED signal. This can return
Poll::Ready if the object has already been signaled in which case the
waker will not be woken and it is the caller’s responsibility to not
lose the signal.Auto Trait Implementations§
impl<T, S> Freeze for RWHandle<T, S>where
T: Freeze,
impl<T, S = DefaultRWHandleSpec> !RefUnwindSafe for RWHandle<T, S>
impl<T, S> Send for RWHandle<T, S>where
T: Send,
impl<T, S> Sync for RWHandle<T, S>where
T: Sync,
impl<T, S> Unpin for RWHandle<T, S>where
T: Unpin,
impl<T, S = DefaultRWHandleSpec> !UnwindSafe for RWHandle<T, S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more