pub struct ComponentStartInfo {
pub resolved_url: Option<String>,
pub program: Option<Dictionary>,
pub ns: Option<Vec<ComponentNamespaceEntry>>,
pub outgoing_dir: Option<ServerEnd<DirectoryMarker>>,
pub runtime_dir: Option<ServerEnd<DirectoryMarker>>,
pub numbered_handles: Option<Vec<HandleInfo>>,
pub encoded_config: Option<Data>,
pub break_on_start: Option<EventPair>,
pub component_instance: Option<Event>,
pub escrowed_dictionary: Option<DictionaryRef>,
/* private fields */
}
Expand description
Parameters for starting a new component instance.
Fields§
§resolved_url: Option<String>
The resolved URL of the component.
This is the canonical URL obtained by the component resolver after following redirects and resolving relative paths.
program: Option<Dictionary>
The component’s program declaration.
This information originates from ComponentDecl.program
.
ns: Option<Vec<ComponentNamespaceEntry>>
The namespace to provide to the component instance.
A namespace specifies the set of directories that a component instance
receives at start-up. Through the namespace directories, a component
may access capabilities available to it. The contents of the namespace
are mainly determined by the component’s use
declarations but may
also contain additional capabilities automatically provided by the
framework.
By convention, a component’s namespace typically contains some or all of the following directories:
- “/svc”: A directory containing services that the component requested to use via its “import” declarations.
- “/pkg”: A directory containing the component’s package, including its binaries, libraries, and other assets.
The mount points specified in each entry must be unique and non-overlapping. For example, [{“/foo”, ..}, {“/foo/bar”, ..}] is invalid.
outgoing_dir: Option<ServerEnd<DirectoryMarker>>
The directory this component serves.
runtime_dir: Option<ServerEnd<DirectoryMarker>>
The directory served by the runner to present runtime information about the component. The runner must either serve it, or drop it to avoid blocking any consumers indefinitely.
numbered_handles: Option<Vec<HandleInfo>>
The numbered handles that were passed to the component.
If the component does not support numbered handles, the runner is expected to close the handles.
encoded_config: Option<Data>
Binary representation of the component’s configuration.
§Layout
The first 2 bytes of the data should be interpreted as an unsigned 16-bit little-endian integer which denotes the number of bytes following it that contain the configuration checksum. After the checksum, all the remaining bytes are a persistent FIDL message of a top-level struct. The struct’s fields match the configuration fields of the component’s compiled manifest in the same order.
break_on_start: Option<EventPair>
An eventpair that debuggers can use to defer the launch of the component.
For example, ELF runners hold off from creating processes in the component until ZX_EVENTPAIR_PEER_CLOSED is signaled on this eventpair. They also ensure that runtime_dir is served before waiting on this eventpair. ELF debuggers can query the runtime_dir to decide whether to attach before they drop the other side of the eventpair, which is sent in the payload of the DebugStarted event in fuchsia.component.events.
component_instance: Option<Event>
An opaque token that represents the component instance.
The fuchsia.component/Introspector
protocol may be used to get the
string moniker of the instance from this token.
Runners may publish this token as part of diagnostics information, to identify the running component without knowing its moniker.
The token is invalidated when the component instance is destroyed.
escrowed_dictionary: Option<DictionaryRef>
A dictionary containing data and handles that the component has escrowed
during its previous execution via [ComponentController.OnEscrow
].
Trait Implementations§
Source§impl Debug for ComponentStartInfo
impl Debug for ComponentStartInfo
Source§impl Decode<ComponentStartInfo, DefaultFuchsiaResourceDialect> for ComponentStartInfo
impl Decode<ComponentStartInfo, DefaultFuchsiaResourceDialect> for ComponentStartInfo
Source§impl Default for ComponentStartInfo
impl Default for ComponentStartInfo
Source§fn default() -> ComponentStartInfo
fn default() -> ComponentStartInfo
Source§impl Encode<ComponentStartInfo, DefaultFuchsiaResourceDialect> for &mut ComponentStartInfo
impl Encode<ComponentStartInfo, DefaultFuchsiaResourceDialect> for &mut ComponentStartInfo
Source§impl PartialEq for ComponentStartInfo
impl PartialEq for ComponentStartInfo
Source§impl ResourceTypeMarker for ComponentStartInfo
impl ResourceTypeMarker for ComponentStartInfo
Source§type Borrowed<'a> = &'a mut ComponentStartInfo
type Borrowed<'a> = &'a mut ComponentStartInfo
Encode<Self>
type cheaply obtainable from &mut Self::Owned
. There are three cases: Read moreSource§fn take_or_borrow<'a>(
value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
&mut Self::Owned
to Self::Borrowed
. For
HandleBased
types this is “take” (it returns an owned handle and
replaces value
with Handle::invalid
), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for ComponentStartInfo
impl TypeMarker for ComponentStartInfo
Source§type Owned = ComponentStartInfo
type Owned = ComponentStartInfo
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.