Skip to main content

FDomainProxy

Struct FDomainProxy 

Source
pub struct FDomainProxy { /* private fields */ }

Implementations§

Source§

impl FDomainProxy

Source

pub fn new(channel: AsyncChannel) -> Self

Create a new Proxy for fuchsia.fdomain/FDomain.

Source

pub fn take_event_stream(&self) -> FDomainEventStream

Get a Stream of events from the remote end of the protocol.

§Panics

Panics if the event stream was already taken.

Source

pub fn create_channel( &self, handles: &[NewHandleId; 2], ) -> QueryResponseFut<ChannelCreateChannelResult, DefaultFuchsiaResourceDialect>

Create a new channel in this FDomain and return both its ends.

Source

pub fn read_channel( &self, handle: &HandleId, ) -> QueryResponseFut<ChannelReadChannelResult, DefaultFuchsiaResourceDialect>

Read a message from a channel. This method will fail if the channel is currently being read using the streaming read functions.

Note that this method is not like zx_channel_read in that it will not return SHOULD_WAIT but will instead delay returning until there is data to return.

Source

pub fn write_channel( &self, handle: &HandleId, data: &[u8], handles: &Handles, ) -> QueryResponseFut<ChannelWriteChannelResult, DefaultFuchsiaResourceDialect>

Write to a channel. Handles are always consumed.

Source

pub fn read_channel_streaming_start( &self, handle: &HandleId, ) -> QueryResponseFut<ChannelReadChannelStreamingStartResult, DefaultFuchsiaResourceDialect>

Starts reading from the given channel. Data is returned via the ChannelStreamingData event. That event will occur repeatedly until ReadChannelStreamingStop is called for the same handle or the event indicates the handle is closed.

Source

pub fn read_channel_streaming_stop( &self, handle: &HandleId, ) -> QueryResponseFut<ChannelReadChannelStreamingStopResult, DefaultFuchsiaResourceDialect>

Stop asynchronous reading from the given channel.

Source

pub fn create_event( &self, handle: &NewHandleId, ) -> QueryResponseFut<EventCreateEventResult, DefaultFuchsiaResourceDialect>

Create a new event in this FDomain and return it.

Source

pub fn create_event_pair( &self, handles: &[NewHandleId; 2], ) -> QueryResponseFut<EventPairCreateEventPairResult, DefaultFuchsiaResourceDialect>

Create a new event pair in this FDomain and return both its ends.

Source

pub fn create_socket( &self, options: SocketType, handles: &[NewHandleId; 2], ) -> QueryResponseFut<SocketCreateSocketResult, DefaultFuchsiaResourceDialect>

Create a new socket in this FDomain and return both its ends.

Source

pub fn set_socket_disposition( &self, handle: &HandleId, disposition: SocketDisposition, disposition_peer: SocketDisposition, ) -> QueryResponseFut<SocketSetSocketDispositionResult, DefaultFuchsiaResourceDialect>

Set the disposition of a given socket.

Source

pub fn read_socket( &self, handle: &HandleId, max_bytes: u64, ) -> QueryResponseFut<SocketReadSocketResult, DefaultFuchsiaResourceDialect>

Read data from a socket. This method will fail if the socket is currently being read asynchronously.

Source

pub fn write_socket( &self, handle: &HandleId, data: &[u8], ) -> QueryResponseFut<SocketWriteSocketResult, DefaultFuchsiaResourceDialect>

Write to a socket. This will attempt to write all the data passed, and will block and retry whenever it is safe (e.g. it should never return SHOULD_WAIT). The WriteSocketError contains a wrote parameter to indicate if some bytes were written successfully before the failure occurred.

Source

pub fn read_socket_streaming_start( &self, handle: &HandleId, ) -> QueryResponseFut<SocketReadSocketStreamingStartResult, DefaultFuchsiaResourceDialect>

Starts reading from the given socket. Data is returned via the SocketStreamingData event. That event will occur repeatedly until ReadSocketStreamingStop is called for the same handle or the event indicates the handle is closed.

Source

pub fn read_socket_streaming_stop( &self, handle: &HandleId, ) -> QueryResponseFut<SocketReadSocketStreamingStopResult, DefaultFuchsiaResourceDialect>

Stop asynchronous reading from the given socket.

Source

pub fn get_namespace( &self, new_handle: &NewHandleId, ) -> QueryResponseFut<FDomainGetNamespaceResult, DefaultFuchsiaResourceDialect>

Adds a new channel handle to this namespace which points to a fuchsia.io.Directory. Can be used to “bootstrap” the FDomain.

Source

pub fn close( &self, handles: &[HandleId], ) -> QueryResponseFut<FDomainCloseResult, DefaultFuchsiaResourceDialect>

Close one or more handles.

Source

pub fn duplicate( &self, handle: &HandleId, new_handle: &NewHandleId, rights: Rights, ) -> QueryResponseFut<FDomainDuplicateResult, DefaultFuchsiaResourceDialect>

Duplicate a handle.

Source

pub fn replace( &self, handle: &HandleId, new_handle: &NewHandleId, rights: Rights, ) -> QueryResponseFut<FDomainReplaceResult, DefaultFuchsiaResourceDialect>

Close a handle and replace it with a new one with possibly different rights.

Source

pub fn signal( &self, handle: &HandleId, set: u32, clear: u32, ) -> QueryResponseFut<FDomainSignalResult, DefaultFuchsiaResourceDialect>

Set or clear signals on a handle.

Source

pub fn signal_peer( &self, handle: &HandleId, set: u32, clear: u32, ) -> QueryResponseFut<FDomainSignalPeerResult, DefaultFuchsiaResourceDialect>

Set or clear signals on a handle’s peer.

Source

pub fn wait_for_signals( &self, handle: &HandleId, signals: u32, ) -> QueryResponseFut<FDomainWaitForSignalsResult, DefaultFuchsiaResourceDialect>

Wait for signals from the given handle. Reply will be returned when one of the given signals is asserted.

Source

pub fn get_koid( &self, handle: &HandleId, ) -> QueryResponseFut<FDomainGetKoidResult, DefaultFuchsiaResourceDialect>

Return the kernel object ID (koid) of the handle.

Trait Implementations§

Source§

impl Clone for FDomainProxy

Source§

fn clone(&self) -> FDomainProxy

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FDomainProxy

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FDomainProxyInterface for FDomainProxy

Source§

type CreateChannelResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type ReadChannelResponseFut = QueryResponseFut<Result<(Vec<u8>, Vec<HandleInfo>), Error>>

Source§

type WriteChannelResponseFut = QueryResponseFut<Result<(), WriteChannelError>>

Source§

type ReadChannelStreamingStartResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type ReadChannelStreamingStopResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type CreateEventResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type CreateEventPairResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type CreateSocketResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type SetSocketDispositionResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type ReadSocketResponseFut = QueryResponseFut<Result<(Vec<u8>, bool), Error>>

Source§

type WriteSocketResponseFut = QueryResponseFut<Result<u64, WriteSocketError>>

Source§

type ReadSocketStreamingStartResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type ReadSocketStreamingStopResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type GetNamespaceResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type CloseResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type DuplicateResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type ReplaceResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type SignalResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type SignalPeerResponseFut = QueryResponseFut<Result<(), Error>>

Source§

type WaitForSignalsResponseFut = QueryResponseFut<Result<u32, Error>>

Source§

type GetKoidResponseFut = QueryResponseFut<Result<u64, Error>>

Source§

fn create_channel( &self, handles: &[NewHandleId; 2], ) -> Self::CreateChannelResponseFut

Source§

fn read_channel(&self, handle: &HandleId) -> Self::ReadChannelResponseFut

Source§

fn write_channel( &self, handle: &HandleId, data: &[u8], handles: &Handles, ) -> Self::WriteChannelResponseFut

Source§

fn read_channel_streaming_start( &self, handle: &HandleId, ) -> Self::ReadChannelStreamingStartResponseFut

Source§

fn read_channel_streaming_stop( &self, handle: &HandleId, ) -> Self::ReadChannelStreamingStopResponseFut

Source§

fn create_event(&self, handle: &NewHandleId) -> Self::CreateEventResponseFut

Source§

fn create_event_pair( &self, handles: &[NewHandleId; 2], ) -> Self::CreateEventPairResponseFut

Source§

fn create_socket( &self, options: SocketType, handles: &[NewHandleId; 2], ) -> Self::CreateSocketResponseFut

Source§

fn set_socket_disposition( &self, handle: &HandleId, disposition: SocketDisposition, disposition_peer: SocketDisposition, ) -> Self::SetSocketDispositionResponseFut

Source§

fn read_socket( &self, handle: &HandleId, max_bytes: u64, ) -> Self::ReadSocketResponseFut

Source§

fn write_socket( &self, handle: &HandleId, data: &[u8], ) -> Self::WriteSocketResponseFut

Source§

fn read_socket_streaming_start( &self, handle: &HandleId, ) -> Self::ReadSocketStreamingStartResponseFut

Source§

fn read_socket_streaming_stop( &self, handle: &HandleId, ) -> Self::ReadSocketStreamingStopResponseFut

Source§

fn get_namespace( &self, new_handle: &NewHandleId, ) -> Self::GetNamespaceResponseFut

Source§

fn close(&self, handles: &[HandleId]) -> Self::CloseResponseFut

Source§

fn duplicate( &self, handle: &HandleId, new_handle: &NewHandleId, rights: Rights, ) -> Self::DuplicateResponseFut

Source§

fn replace( &self, handle: &HandleId, new_handle: &NewHandleId, rights: Rights, ) -> Self::ReplaceResponseFut

Source§

fn signal( &self, handle: &HandleId, set: u32, clear: u32, ) -> Self::SignalResponseFut

Source§

fn signal_peer( &self, handle: &HandleId, set: u32, clear: u32, ) -> Self::SignalPeerResponseFut

Source§

fn wait_for_signals( &self, handle: &HandleId, signals: u32, ) -> Self::WaitForSignalsResponseFut

Source§

fn get_koid(&self, handle: &HandleId) -> Self::GetKoidResponseFut

Source§

impl Proxy for FDomainProxy

Source§

type Protocol = FDomainMarker

The protocol which this Proxy controls.
Source§

fn from_channel(inner: AsyncChannel) -> Self

Create a proxy over the given channel.
Source§

fn into_channel(self) -> Result<AsyncChannel, Self>

Attempt to convert the proxy back into a channel. Read more
Source§

fn as_channel(&self) -> &AsyncChannel

Get a reference to the proxy’s underlying channel. Read more
Source§

fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>

Attempt to convert the proxy back into a client end. Read more
Source§

fn is_closed(&self) -> bool

Returns true if the proxy has received the PEER_CLOSED signal.
Source§

fn on_closed(&self) -> OnSignals<'_, Unowned<'_, NullableHandle>>

Returns a future that completes when the proxy receives the PEER_CLOSED signal.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromClient for T
where T: Proxy,

Source§

type Protocol = <T as Proxy>::Protocol

The protocol.
Source§

fn from_client(value: ClientEnd<<T as FromClient>::Protocol>) -> T

Converts from a client.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ProxyHasDomain for T
where T: Proxy,

Source§

fn domain(&self) -> ZirconClient

Get a “client” for this proxy. This is just an object which has methods for a few common handle creation operations.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.