pub enum ManagedRealmRequest {
GetMoniker {
responder: ManagedRealmGetMonikerResponder,
},
ConnectToProtocol {
protocol_name: String,
child_name: Option<String>,
req: Channel,
control_handle: ManagedRealmControlHandle,
},
AddDevice {
path: String,
device: ClientEnd<DeviceProxy_Marker>,
responder: ManagedRealmAddDeviceResponder,
},
RemoveDevice {
path: String,
responder: ManagedRealmRemoveDeviceResponder,
},
GetDevfs {
devfs: ServerEnd<DirectoryMarker>,
control_handle: ManagedRealmControlHandle,
},
StartChildComponent {
child_name: String,
responder: ManagedRealmStartChildComponentResponder,
},
StopChildComponent {
child_name: String,
responder: ManagedRealmStopChildComponentResponder,
},
Shutdown {
control_handle: ManagedRealmControlHandle,
},
OpenDiagnosticsDirectory {
child_name: String,
directory: ServerEnd<DirectoryMarker>,
control_handle: ManagedRealmControlHandle,
},
GetCrashListener {
listener: ServerEnd<CrashListenerMarker>,
control_handle: ManagedRealmControlHandle,
},
}Expand description
ManagedRealm is a netemul-managed realm.
A ManagedRealm is hermetic with respect to capabilities except for
- netemul-provided capabilities to allow networking
- logging
ManagedRealm also provides a devfs instance: a directory standing for a
virtual device filesystem that can be controlled through the [AddDevice]
and [RemoveDevice] methods.
The lifetime of a ManagedRealm and all its children are tied to its
channel. Upon closure, all children of the realm will be destroyed.
Variants§
GetMoniker
Returns the moniker of the root of the managed realm.
- response
monikerthe moniker of the root of the generated topology that contains this realm’s child components.
Fields
responder: ManagedRealmGetMonikerResponderConnectToProtocol
Connects to a protocol named protocol_name provided by a child in this
realm.
If child_name is not provided, connects to the first child offering
protocol_name.
- request
protocol_namethe name of the protocol to connect to. - request
child_namethe name of the child component that is exposing the requested protocol. - request
reqa channel to be bound to an implementation of the protocol.
Fields
control_handle: ManagedRealmControlHandleAddDevice
Mounts new virtual device device on netemul’s devfs instance within
this realm.
This devfs instance is available to components that have the
[Capability.netemul_devfs] capability.
- request
pathrelative path fromdevfsroot to the virtual device to be added to the realm. - request
devicevirtual device server.
- error
ZX_ERR_ALREADY_EXISTSifdevice.pathis already in use. - error
ZX_ERR_INVALID_ARGSif an element ofpathexceeds [fuchsia.io/MAX_FILENAME] bytes in length.
RemoveDevice
Removes virtual device mounted at path.
- request
paththe path to virtual device to be removed from the realm, relative todevfsroot.
- error
ZX_ERR_NOT_FOUNDifpathis not currently bound to a device. - error
ZX_ERR_INVALID_ARGSif an element ofpathexceeds [fuchsia.io/MAX_FILENAME] bytes in length.
GetDevfs
Connects to netemul’s devfs instance for this realm.
- request
devfsrequest handle to thedevfsdirectory.
StartChildComponent
Starts the specified child component in this realm. Starting an already running child component is a no-op and returns success.
- request
child_namethe name of the child component to be started.
- error
ZX_ERR_NOT_FOUNDifchild_nameis not a child component in this realm. - error
ZX_ERR_INVALID_ARGSifchild_namecannot be composed into a well-formed moniker. - error
ZX_ERR_INTERNALif the call to the service dependency fails.
StopChildComponent
Stops the specified child component in this realm. Stopping an already stopped child component is a no-op and returns success.
- request
child_namethe name of the child component to be stopped.
- error
ZX_ERR_NOT_FOUNDifchild_nameis not a child component in this realm. - error
ZX_ERR_INVALID_ARGSifchild_namecannot be composed into a well-formed moniker. - error
ZX_ERR_INTERNALif the call to the service dependency fails.
Shutdown
Request that the managed realm shut down.
The realm will send an OnShutdown event when shutdown is complete and
before closing the channel.
Fields
control_handle: ManagedRealmControlHandleOpenDiagnosticsDirectory
Opens the diagnostics directory exposed by the component child_name.
GetCrashListener
Creates a new [CrashListener] instance scoped to this realm.
Implementations§
Source§impl ManagedRealmRequest
impl ManagedRealmRequest
pub fn into_get_moniker(self) -> Option<ManagedRealmGetMonikerResponder>
pub fn into_connect_to_protocol( self, ) -> Option<(String, Option<String>, Channel, ManagedRealmControlHandle)>
pub fn into_add_device( self, ) -> Option<(String, ClientEnd<DeviceProxy_Marker>, ManagedRealmAddDeviceResponder)>
pub fn into_remove_device( self, ) -> Option<(String, ManagedRealmRemoveDeviceResponder)>
pub fn into_get_devfs( self, ) -> Option<(ServerEnd<DirectoryMarker>, ManagedRealmControlHandle)>
pub fn into_start_child_component( self, ) -> Option<(String, ManagedRealmStartChildComponentResponder)>
pub fn into_stop_child_component( self, ) -> Option<(String, ManagedRealmStopChildComponentResponder)>
pub fn into_shutdown(self) -> Option<ManagedRealmControlHandle>
pub fn into_open_diagnostics_directory( self, ) -> Option<(String, ServerEnd<DirectoryMarker>, ManagedRealmControlHandle)>
pub fn into_get_crash_listener( self, ) -> Option<(ServerEnd<CrashListenerMarker>, ManagedRealmControlHandle)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL