pub struct Port(/* private fields */);
Expand description
An object representing a Zircon port.
As essentially a subtype of Handle
, it can be freely interconverted.
Implementations§
Source§impl Port
impl Port
Sourcepub fn create() -> Self
pub fn create() -> Self
Create an IO port, allowing IO packets to be read and enqueued.
Wraps the zx_port_create syscall.
§Panics
If the kernel reports no memory available to create a port or the process’ job policy denies port creation.
pub fn create_with_opts(opts: PortOptions) -> Self
Sourcepub fn queue(&self, packet: &Packet) -> Result<(), Status>
pub fn queue(&self, packet: &Packet) -> Result<(), Status>
Attempt to queue a user packet to the IO port.
Wraps the zx_port_queue syscall.
Sourcepub fn wait(&self, deadline: MonotonicInstant) -> Result<Packet, Status>
pub fn wait(&self, deadline: MonotonicInstant) -> Result<Packet, Status>
Wait for a packet to arrive on a (V2) port.
Wraps the zx_port_wait syscall.
Sourcepub fn cancel<H>(&self, source: &H, key: u64) -> Result<(), Status>where
H: AsHandleRef,
pub fn cancel<H>(&self, source: &H, key: u64) -> Result<(), Status>where
H: AsHandleRef,
Cancel pending wait_async calls for an object with the given key.
Wraps the zx_port_cancel syscall.
Trait Implementations§
Source§impl AsHandleRef for Port
impl AsHandleRef for Port
Source§fn as_handle_ref(&self) -> HandleRef<'_>
fn as_handle_ref(&self) -> HandleRef<'_>
Get a reference to the handle. One important use of such a reference is
for
object_wait_many
.Source§fn raw_handle(&self) -> zx_handle_t
fn raw_handle(&self) -> zx_handle_t
Interpret the reference as a raw handle (an integer type). Two distinct
handles will have different raw values (so it can perhaps be used as a
key in a data structure).
Source§fn signal_handle(
&self,
clear_mask: Signals,
set_mask: Signals,
) -> Result<(), Status>
fn signal_handle( &self, clear_mask: Signals, set_mask: Signals, ) -> Result<(), Status>
Set and clear userspace-accessible signal bits on an object. Wraps the
zx_object_signal
syscall.
Source§fn wait_handle(
&self,
signals: Signals,
deadline: MonotonicInstant,
) -> Result<Signals, Status>
fn wait_handle( &self, signals: Signals, deadline: MonotonicInstant, ) -> Result<Signals, Status>
Waits on a handle. Wraps the
zx_object_wait_one
syscall.
Source§fn wait_async_handle(
&self,
port: &Port,
key: u64,
signals: Signals,
options: WaitAsyncOpts,
) -> Result<(), Status>
fn wait_async_handle( &self, port: &Port, key: u64, signals: Signals, options: WaitAsyncOpts, ) -> Result<(), Status>
Causes packet delivery on the given port when the object changes state and matches signals.
zx_object_wait_async
syscall.
Source§fn get_name(&self) -> Result<Name, Status>
fn get_name(&self) -> Result<Name, Status>
Get the Property::NAME property for this object. Read more
Source§fn set_name(&self, name: &Name) -> Result<(), Status>
fn set_name(&self, name: &Name) -> Result<(), Status>
Set the Property::NAME property for this object. Read more
Source§fn basic_info(&self) -> Result<HandleBasicInfo, Status>
fn basic_info(&self) -> Result<HandleBasicInfo, Status>
Wraps the
zx_object_get_info
syscall for the ZX_INFO_HANDLE_BASIC topic.
Source§fn count_info(&self) -> Result<HandleCountInfo, Status>
fn count_info(&self) -> Result<HandleCountInfo, Status>
Wraps the
zx_object_get_info
syscall for the ZX_INFO_HANDLE_COUNT topic.
Source§impl HandleBased for Port
impl HandleBased for Port
Source§fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
Duplicate a handle, possibly reducing the rights available. Wraps the
zx_handle_duplicate
syscall.
Source§fn replace_handle(self, rights: Rights) -> Result<Self, Status>
fn replace_handle(self, rights: Rights) -> Result<Self, Status>
Create a replacement for a handle, possibly reducing the rights available. This invalidates
the original handle. Wraps the
zx_handle_replace
syscall.
Source§fn into_handle(self) -> Handle
fn into_handle(self) -> Handle
Converts the value into its inner handle. Read more
Source§fn into_raw(self) -> zx_handle_t
fn into_raw(self) -> zx_handle_t
Converts the handle into it’s raw representation. Read more
Source§fn from_handle(handle: Handle) -> Self
fn from_handle(handle: Handle) -> Self
Creates an instance of this type from a handle. Read more
Source§fn into_handle_based<H: HandleBased>(self) -> H
fn into_handle_based<H: HandleBased>(self) -> H
Creates an instance of another handle-based type from this value’s inner handle.
Source§fn from_handle_based<H: HandleBased>(h: H) -> Self
fn from_handle_based<H: HandleBased>(h: H) -> Self
Creates an instance of this type from the inner handle of another
handle-based type.
fn is_invalid_handle(&self) -> bool
Source§impl Ord for Port
impl Ord for Port
Source§impl PartialOrd for Port
impl PartialOrd for Port
impl Eq for Port
impl StructuralPartialEq for Port
Auto Trait Implementations§
impl Freeze for Port
impl RefUnwindSafe for Port
impl Send for Port
impl Sync for Port
impl Unpin for Port
impl UnwindSafe for Port
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