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,
},
}
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
moniker
the moniker of the root of the generated topology that contains this realm’s child components.
Fields
responder: ManagedRealmGetMonikerResponder
ConnectToProtocol
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_name
the name of the protocol to connect to. - request
child_name
the name of the child component that is exposing the requested protocol. - request
req
a channel to be bound to an implementation of the protocol.
Fields
control_handle: ManagedRealmControlHandle
AddDevice
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
path
relative path fromdevfs
root to the virtual device to be added to the realm. - request
device
virtual device server.
- error
ZX_ERR_ALREADY_EXISTS
ifdevice.path
is already in use. - error
ZX_ERR_INVALID_ARGS
if an element ofpath
exceeds [fuchsia.io/MAX_FILENAME
] bytes in length.
RemoveDevice
Removes virtual device mounted at path
.
- request
path
the path to virtual device to be removed from the realm, relative todevfs
root.
- error
ZX_ERR_NOT_FOUND
ifpath
is not currently bound to a device. - error
ZX_ERR_INVALID_ARGS
if an element ofpath
exceeds [fuchsia.io/MAX_FILENAME
] bytes in length.
GetDevfs
Connects to netemul’s devfs
instance for this realm.
- request
devfs
request handle to thedevfs
directory.
StartChildComponent
Starts the specified child component in this realm. Starting an already running child component is a no-op and returns success.
- request
child_name
the name of the child component to be started.
- error
ZX_ERR_NOT_FOUND
ifchild_name
is not a child component in this realm. - error
ZX_ERR_INVALID_ARGS
ifchild_name
cannot be composed into a well-formed moniker. - error
ZX_ERR_INTERNAL
if 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_name
the name of the child component to be stopped.
- error
ZX_ERR_NOT_FOUND
ifchild_name
is not a child component in this realm. - error
ZX_ERR_INVALID_ARGS
ifchild_name
cannot be composed into a well-formed moniker. - error
ZX_ERR_INTERNAL
if 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: ManagedRealmControlHandle
OpenDiagnosticsDirectory
Opens the diagnostics directory exposed by the component child_name
.
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)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL