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