pub struct RealmSynchronousProxy { /* private fields */ }

Implementations§

source§

impl RealmSynchronousProxy

source

pub fn new(channel: Channel) -> Self

source

pub fn into_channel(self) -> Channel

source

pub fn wait_for_event(&self, deadline: Time) -> Result<RealmEvent, Error>

Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.

source

pub fn open_exposed_dir( &self, child: &ChildRef, exposed_dir: ServerEnd<DirectoryMarker>, ___deadline: Time ) -> Result<RealmOpenExposedDirResult, Error>

Opens the exposed directory of a child component instance. When this function successfully returns, exposed_dir is bound to a directory that contains the capabilities which the child exposed to its realm via ComponentDecl.exposes (specified via “expose” declarations in the component’s manifest). The child component will not start as a result of this call. Instead, starting will occur iff the parent binds to one of the capabilities contained within exposed_dir.

exposed_dir is open as long as child exists.

Errors:

  • INVALID_ARGUMENTS: child is not a valid child reference.
  • INSTANCE_NOT_FOUND: child does not exist.
  • INSTANCE_CANNOT_RESOLVE: child’s component declaration failed to resolve.
  • INSTANCE_DIED: This realm no longer exists.
source

pub fn create_child( &self, collection: &CollectionRef, decl: &Child, args: CreateChildArgs, ___deadline: Time ) -> Result<RealmCreateChildResult, Error>

Creates a child component instance dynamically. When this function returns successfully, the instance exists, but it may not be running.

The environment of the child instance is determined by the environment of the collection. decl must not set environment.

If decl.startup == EAGER, or collection.durability == SINGLE_RUN, [CreateChild] will start the component and return once the component is started. Otherwise, [CreateChild] will return immediately after creating the component and will not start or resolve it.

Errors:

  • INVALID_ARGUMENTS: collection is not a valid reference or child is not a valid declaration.
  • COLLECTION_NOT_FOUND: collection does not exist.
  • INSTANCE_ALREADY_EXISTS: decl.name already exists in collection.
  • INSTANCE_CANNOT_RESOLVE: child’s component declaration failed to resolve in a SingleRun collection.
  • NO_SPACE: Could not allocate storage for the new instance.
  • INSTANCE_DIED: This realm no longer exists.
source

pub fn destroy_child( &self, child: &ChildRef, ___deadline: Time ) -> Result<RealmDestroyChildResult, Error>

Destroys a dynamically-created component instance. When this function returns, the instance is destroyed and has stopped running. However, cleanup of the component’s resources (such as its isolated storage) may happen in the background after this function returns.

Errors:

  • INVALID_ARGUMENTS: child is not a valid reference or does not refer to a dynamic instance.
  • INSTANCE_NOT_FOUND: child does not exist.
  • COLLECTION_NOT_FOUND: collection does not exist.
  • INSTANCE_DIED: This realm no longer exists.
source

pub fn list_children( &self, collection: &CollectionRef, iter: ServerEnd<ChildIteratorMarker>, ___deadline: Time ) -> Result<RealmListChildrenResult, Error>

Returns an iterator that lists all instances in a collection.

NOTE: The results are not guaranteed to be consistent. Instances may be created or destroyed while the iterator is live, but those changes won’t be observed by the iterator after this method returns.

Errors:

  • INVALID_ARGUMENTS: collection is not a valid reference or iter does not have ZX_RIGHT_WAIT.
  • COLLECTION_NOT_FOUND: collection does not exist.
  • INSTANCE_DIED: This realm no longer exists.
  • If iter does not have standard channel rights, this function may return ACCESS_DENIED or component manager may close iter.

Trait Implementations§

source§

impl Debug for RealmSynchronousProxy

source§

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

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

impl SynchronousProxy for RealmSynchronousProxy

§

type Proxy = RealmProxy

The async proxy for the same protocol.
§

type Protocol = RealmMarker

The protocol which this Proxy controls.
source§

fn from_channel(inner: Channel) -> Self

Create a proxy over the given channel.
source§

fn into_channel(self) -> Channel

Convert the proxy back into a channel.
source§

fn as_channel(&self) -> &Channel

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

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
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _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
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more