pub struct LocalComponentHandles {
pub outgoing_dir: ServerEnd<DirectoryMarker>,
/* private fields */
}
Expand description
The handles from the framework over which the local component should interact with other components.
Fields§
§outgoing_dir: ServerEnd<DirectoryMarker>
The outgoing directory handle for a local component. This can be used to run a ServiceFs for the component.
Implementations§
Source§impl LocalComponentHandles
impl LocalComponentHandles
pub fn take_numbered_handle(&mut self, id: u32) -> Option<Handle>
pub fn numbered_handles(&self) -> &HashMap<u32, Handle>
Sourcepub async fn register_stop_notifier(&self) -> Receiver<()>
pub async fn register_stop_notifier(&self) -> Receiver<()>
Registers a new stop notifier for this component. If this function is called, then realm builder will deliver a message on the returned oneshot when component manager asks for this component to stop. It is then this component’s responsibility to exit. If it takes too long to exit (the default is 5 seconds) then it will be killed.
If this function is not called, then the component is immediately killed when component manager asks for it to be stopped. Killing the component is performed by dropping the underlying future, effectively cancelling all pending work.
If this function is called more than once on a single local component, then it will panic.
Sourcepub fn connect_to_protocol<P: DiscoverableProtocolMarker>(
&self,
) -> Result<P::Proxy, Error>
pub fn connect_to_protocol<P: DiscoverableProtocolMarker>( &self, ) -> Result<P::Proxy, Error>
Connects to a FIDL protocol and returns a proxy to that protocol.
Sourcepub fn connect_to_named_protocol<P: ProtocolMarker>(
&self,
name: &str,
) -> Result<P::Proxy, Error>
pub fn connect_to_named_protocol<P: ProtocolMarker>( &self, name: &str, ) -> Result<P::Proxy, Error>
Connects to a FIDL protocol with the given name and returns a proxy to that protocol.
Sourcepub fn open_service<S: ServiceMarker>(&self) -> Result<DirectoryProxy, Error>
pub fn open_service<S: ServiceMarker>(&self) -> Result<DirectoryProxy, Error>
Opens a FIDL service as a directory, which holds instances of the service.
Sourcepub fn open_named_service(&self, name: &str) -> Result<DirectoryProxy, Error>
pub fn open_named_service(&self, name: &str) -> Result<DirectoryProxy, Error>
Opens a FIDL service with the given name as a directory, which holds instances of the service.
Sourcepub fn connect_to_service<S: ServiceMarker>(&self) -> Result<S::Proxy, Error>
pub fn connect_to_service<S: ServiceMarker>(&self) -> Result<S::Proxy, Error>
Connect to the “default” instance of a FIDL service in the /svc
directory of
the local component’s root namespace.
Sourcepub fn connect_to_service_instance<S: ServiceMarker>(
&self,
instance_name: &str,
) -> Result<S::Proxy, Error>
pub fn connect_to_service_instance<S: ServiceMarker>( &self, instance_name: &str, ) -> Result<S::Proxy, Error>
Connect to an instance of a FIDL service in the /svc
directory of
the local components’s root namespace.
instance
is a path of one or more components.
Sourcepub fn connect_to_named_service_instance<S: ServiceMarker>(
&self,
service_name: &str,
instance_name: &str,
) -> Result<S::Proxy, Error>
pub fn connect_to_named_service_instance<S: ServiceMarker>( &self, service_name: &str, instance_name: &str, ) -> Result<S::Proxy, Error>
Connect to an instance of a FIDL service with the given name in the /svc
directory of
the local components’s root namespace.
instance
is a path of one or more components.
Sourcepub fn clone_from_namespace(
&self,
directory_name: &str,
) -> Result<DirectoryProxy, Error>
pub fn clone_from_namespace( &self, directory_name: &str, ) -> Result<DirectoryProxy, Error>
Clones a directory from the local component’s namespace.
Note that this function only works on exact matches from the namespace. For example if the
namespace had a data
entry in it, and the caller wished to open the subdirectory at
data/assets
, then this function should be called with the argument data
and the
returned DirectoryProxy
would then be used to open the subdirectory assets
. In this
scenario, passing data/assets
in its entirety to this function would fail.
let data_dir = handles.clone_from_namespace("data")?;
let assets_dir = fuchsia_fs::directory::open_directory_async(&data_dir, "assets", ...)?;