template <>
class WireServer
Defined at line 5001 of file fidling/gen/sdk/fidl/fuchsia.component/fuchsia.component/cpp/fidl/fuchsia.component/cpp/wire_messaging.h
Pure-virtual interface to be implemented by a server.
This interface uses typed channels (i.e. |::fidl::ClientEnd
<
::fuchsia_component::Realm>|
and |::fidl::ServerEnd
<
::fuchsia_component::Realm>|).
Public Methods
void OpenController (::fuchsia_component::wire::RealmOpenControllerRequest * request, OpenControllerCompleter::Sync & completer)
Operate on a child component. See documentation for [`Controller`].
Errors:
- `INVALID_ARGUMENTS`: `child` is not a valid child reference.
- `INSTANCE_NOT_FOUND`: `child` does not exist.
- `INSTANCE_DIED`: This realm no longer exists.
void OpenExposedDir (::fuchsia_component::wire::RealmOpenExposedDirRequest * request, OpenExposedDirCompleter::Sync & completer)
Opens the exposed directory of a child component. 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.
`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.
void CreateChild (::fuchsia_component::wire::RealmCreateChildRequest * request, CreateChildCompleter::Sync & completer)
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.
void DestroyChild (::fuchsia_component::wire::RealmDestroyChildRequest * request, DestroyChildCompleter::Sync & completer)
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.
void ListChildren (::fuchsia_component::wire::RealmListChildrenRequest * request, ListChildrenCompleter::Sync & completer)
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`.
void GetResolvedInfo (GetResolvedInfoCompleter::Sync & completer)
Returns the set of information that was given to the component framework
by this component's resolver.
void GetChildOutputDictionaryDeprecated (::fuchsia_component::wire::RealmGetChildOutputDictionaryDeprecatedRequest * request, GetChildOutputDictionaryDeprecatedCompleter::Sync & completer)
void GetChildOutputDictionary (::fuchsia_component::wire::RealmGetChildOutputDictionaryRequest * request, GetChildOutputDictionaryCompleter::Sync & completer)
Returns a reference to a child's output dictionary, which may be
interacted with by using the fuchsia.component.runtime.Capabilities API.
void WireServer ()
Defined at line 5004 of file fidling/gen/sdk/fidl/fuchsia.component/fuchsia.component/cpp/fidl/fuchsia.component/cpp/wire_messaging.h
Handler bind_handler (async_dispatcher_t * dispatcher)
|bind_handler| returns a handler that binds incoming connections to this
server implementation.
The returned handler borrows the server instance.
The server must outlive the provided |dispatcher|. Only after
the dispatcher is shutdown will it be safe to destroy the servers.
The server should not be moved.
void ~WireServer ()
Defined at line 5005 of file fidling/gen/sdk/fidl/fuchsia.component/fuchsia.component/cpp/fidl/fuchsia.component/cpp/wire_messaging.h