| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.component |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div> |
| |
| |
| ## **PROTOCOLS** |
| |
| ## Binder {#Binder} |
| *Defined in [fuchsia.component/binder.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/binder.fidl;l=20)* |
| <p>A framework-provided protocol that allows components that use it to bind to |
| the component that exposes it. The act of connecting to this protocol will |
| trigger the bind. Thus, this protocol contains no methods. For more details |
| on binding, see |
| https://fuchsia.dev/fuchsia-src/concepts/components/v2/lifecycle#binding.</p> |
| <p>When a component connects to protocol, the component exposing this capability |
| will be started if it's not already running. Upon a failure to start, the |
| component framework will close the server end of the channel with a |
| zx.status epitaph.</p> |
| <p>Note: The component doesn't need to serve this protocol, it is implemented |
| by the framework.</p> |
| |
| |
| ## ChildIterator {#ChildIterator} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=147)* |
| <p>A protocol to iterate over the list of children in a realm.</p> |
| |
| |
| ### Next {#ChildIterator.Next} |
| |
| <p>Advance the iterator and return the next batch of children.</p> |
| <p>Returns a vector of <code>ChildRef</code>. Returns an empty vector when there are |
| no more children.</p> |
| |
| |
| |
| #### Request {#ChildIterator.Next_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#ChildIterator.Next_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>children</code></td> |
| <td> |
| <code>vector<<a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#ChildRef'>ChildRef</a>>[128]</code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Realm {#Realm} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=33)* |
| <p>A protocol used by a component instance to manage its own realm, such as for |
| binding to its children.</p> |
| <p>Requests to this protocol are processed in the order they are received. |
| Clients that wish to send requests in parallel should open multiple |
| connections.</p> |
| <p>The component framework provides this service to components that use |
| <code>fuchsia.component.Realm</code>.</p> |
| |
| |
| ### CreateChild {#Realm.CreateChild} |
| |
| <p>Creates a child component instance dynamically. When this function |
| returns successfully, the instance exists, but it may not be running.</p> |
| <p>The environment of the child instance is determined by the environment |
| of the collection. <code>decl</code> must not set <code>environment</code>.</p> |
| <p>Errors:</p> |
| <ul> |
| <li><code>INVALID_ARGUMENTS</code>: <code>collection</code> is not a valid reference or <code>child</code> |
| is not a valid declaration.</li> |
| <li><code>COLLECTION_NOT_FOUND</code>: <code>collection</code> does not exist.</li> |
| <li><code>INSTANCE_ALREADY_EXISTS</code>: <code>decl.name</code> already exists in <code>collection</code>.</li> |
| <li><code>INSTANCE_CANNOT_RESOLVE</code>: <code>child</code>'s component declaration failed to resolve |
| in a <code>SingleRun</code> collection.</li> |
| <li><code>NO_SPACE</code>: Could not allocate storage for the new instance.</li> |
| <li><code>INSTANCE_DIED</code>: This realm no longer exists.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Realm.CreateChild_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>collection</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#CollectionRef'>CollectionRef</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>decl</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#Child'>Child</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>args</code></td> |
| <td> |
| <code><a class='link' href='#CreateChildArgs'>CreateChildArgs</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Realm.CreateChild_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Realm_CreateChild_Result'>Realm_CreateChild_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### DestroyChild {#Realm.DestroyChild} |
| |
| <p>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.</p> |
| <p>Errors:</p> |
| <ul> |
| <li><code>INVALID_ARGUMENTS</code>: <code>child</code> is not a valid reference or does not refer |
| to a dynamic instance.</li> |
| <li><code>INSTANCE_NOT_FOUND</code>: <code>child</code> does not exist.</li> |
| <li><code>COLLECTION_NOT_FOUND</code>: <code>collection</code> does not exist.</li> |
| <li><code>INSTANCE_DIED</code>: This realm no longer exists.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Realm.DestroyChild_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>child</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#ChildRef'>ChildRef</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Realm.DestroyChild_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Realm_DestroyChild_Result'>Realm_DestroyChild_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### ListChildren {#Realm.ListChildren} |
| |
| <p>Returns an iterator that lists all instances in a collection.</p> |
| <p>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.</p> |
| <p>Errors:</p> |
| <ul> |
| <li><code>INVALID_ARGUMENTS</code>: <code>collection</code> is not a valid reference or <code>iter</code> |
| does not have <code>ZX_RIGHT_WAIT</code>.</li> |
| <li><code>COLLECTION_NOT_FOUND</code>: <code>collection</code> does not exist.</li> |
| <li><code>INSTANCE_DIED</code>: This realm no longer exists.</li> |
| <li>If <code>iter</code> does not have standard channel rights, this function may |
| return <code>ACCESS_DENIED</code> or component manager may close <code>iter</code>.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Realm.ListChildren_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>collection</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#CollectionRef'>CollectionRef</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>iter</code></td> |
| <td> |
| <code>server_end<<a class='link' href='#ChildIterator'>ChildIterator</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Realm.ListChildren_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Realm_ListChildren_Result'>Realm_ListChildren_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### OpenExposedDir {#Realm.OpenExposedDir} |
| |
| <p>Opens the exposed directory of a child component instance. When this |
| function successfully returns, <code>exposed_dir</code> is bound to a directory |
| that contains the capabilities which the child exposed to its realm |
| via <code>ComponentDecl.exposes</code> (specified via "expose" declarations in |
| the component's manifest). The child component will not start as a |
| result of this call. Instead, starting will occur iff the parent binds |
| to one of the capabilities contained within <code>exposed_dir</code>.</p> |
| <p><code>exposed_dir</code> is open as long as <code>child</code> exists.</p> |
| <p>Errors:</p> |
| <ul> |
| <li><code>INVALID_ARGUMENTS</code>: <code>child</code> is not a valid child reference.</li> |
| <li><code>INSTANCE_NOT_FOUND</code>: <code>child</code> does not exist.</li> |
| <li><code>INSTANCE_CANNOT_RESOLVE</code>: <code>child</code>'s component declaration failed to resolve.</li> |
| <li><code>INSTANCE_DIED</code>: This realm no longer exists.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Realm.OpenExposedDir_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>child</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#ChildRef'>ChildRef</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>exposed_dir</code></td> |
| <td> |
| <code>server_end<<a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Directory'>Directory</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Realm.OpenExposedDir_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Realm_OpenExposedDir_Result'>Realm_OpenExposedDir_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **STRUCTS** |
| |
| ### Realm_CreateChild_Response {#Realm_CreateChild_Response data-text="Realm_CreateChild_Response"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=73)* |
| |
| <EMPTY> |
| |
| ### Realm_DestroyChild_Response {#Realm_DestroyChild_Response data-text="Realm_DestroyChild_Response"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=88)* |
| |
| <EMPTY> |
| |
| ### Realm_ListChildren_Response {#Realm_ListChildren_Response data-text="Realm_ListChildren_Response"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=106)* |
| |
| <EMPTY> |
| |
| ### Realm_OpenExposedDir_Response {#Realm_OpenExposedDir_Response data-text="Realm_OpenExposedDir_Response"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=52)* |
| |
| <EMPTY> |
| |
| |
| ## **ENUMS** |
| |
| ### Error [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Error data-text="Error"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component/error.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/error.fidl;l=7)* |
| <p>Standard error codes for component framework protocols.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="Error.INTERNAL"> |
| <td><h3 id="Error.INTERNAL" class="add-link hide-from-toc">INTERNAL</h3></td> |
| <td><code>1</code></td> |
| <td><p>Component manager encountered an otherwise unspecified error while |
| performing the operation.</p> |
| </td> |
| </tr> |
| <tr id="Error.INVALID_ARGUMENTS"> |
| <td><h3 id="Error.INVALID_ARGUMENTS" class="add-link hide-from-toc">INVALID_ARGUMENTS</h3></td> |
| <td><code>2</code></td> |
| <td><p>At least one argument had an invalid format.</p> |
| </td> |
| </tr> |
| <tr id="Error.UNSUPPORTED"> |
| <td><h3 id="Error.UNSUPPORTED" class="add-link hide-from-toc">UNSUPPORTED</h3></td> |
| <td><code>3</code></td> |
| <td><p>The feature is not yet supported.</p> |
| </td> |
| </tr> |
| <tr id="Error.ACCESS_DENIED"> |
| <td><h3 id="Error.ACCESS_DENIED" class="add-link hide-from-toc">ACCESS_DENIED</h3></td> |
| <td><code>4</code></td> |
| <td><p>The caller did not have permission to perform the specified operation, |
| or one of the handles provided to the call had insufficient rights.</p> |
| </td> |
| </tr> |
| <tr id="Error.INSTANCE_NOT_FOUND"> |
| <td><h3 id="Error.INSTANCE_NOT_FOUND" class="add-link hide-from-toc">INSTANCE_NOT_FOUND</h3></td> |
| <td><code>5</code></td> |
| <td><p>The component instance was not found.</p> |
| </td> |
| </tr> |
| <tr id="Error.INSTANCE_ALREADY_EXISTS"> |
| <td><h3 id="Error.INSTANCE_ALREADY_EXISTS" class="add-link hide-from-toc">INSTANCE_ALREADY_EXISTS</h3></td> |
| <td><code>6</code></td> |
| <td><p>The component instance already exists.</p> |
| </td> |
| </tr> |
| <tr id="Error.INSTANCE_CANNOT_START"> |
| <td><h3 id="Error.INSTANCE_CANNOT_START" class="add-link hide-from-toc">INSTANCE_CANNOT_START</h3></td> |
| <td><code>7</code></td> |
| <td><p>The component instance could not be started.</p> |
| </td> |
| </tr> |
| <tr id="Error.INSTANCE_CANNOT_RESOLVE"> |
| <td><h3 id="Error.INSTANCE_CANNOT_RESOLVE" class="add-link hide-from-toc">INSTANCE_CANNOT_RESOLVE</h3></td> |
| <td><code>8</code></td> |
| <td><p>Failed to resolve the component's declaration.</p> |
| </td> |
| </tr> |
| <tr id="Error.COLLECTION_NOT_FOUND"> |
| <td><h3 id="Error.COLLECTION_NOT_FOUND" class="add-link hide-from-toc">COLLECTION_NOT_FOUND</h3></td> |
| <td><code>9</code></td> |
| <td><p>The component collection was not found.</p> |
| </td> |
| </tr> |
| <tr id="Error.RESOURCE_UNAVAILABLE"> |
| <td><h3 id="Error.RESOURCE_UNAVAILABLE" class="add-link hide-from-toc">RESOURCE_UNAVAILABLE</h3></td> |
| <td><code>10</code></td> |
| <td><p>There were insufficient resources to perform the operation.</p> |
| </td> |
| </tr> |
| <tr id="Error.INSTANCE_DIED"> |
| <td><h3 id="Error.INSTANCE_DIED" class="add-link hide-from-toc">INSTANCE_DIED</h3></td> |
| <td><code>11</code></td> |
| <td><p>The component instance died unexpectedly.</p> |
| </td> |
| </tr> |
| <tr id="Error.RESOURCE_NOT_FOUND"> |
| <td><h3 id="Error.RESOURCE_NOT_FOUND" class="add-link hide-from-toc">RESOURCE_NOT_FOUND</h3></td> |
| <td><code>12</code></td> |
| <td><p>The requested resource does not exist.</p> |
| </td> |
| </tr> |
| <tr id="Error.INSTANCE_CANNOT_UNRESOLVE"> |
| <td><h3 id="Error.INSTANCE_CANNOT_UNRESOLVE" class="add-link hide-from-toc">INSTANCE_CANNOT_UNRESOLVE</h3></td> |
| <td><code>13</code></td> |
| <td><p>Failed to unresolve the component.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### CreateChildArgs [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#CreateChildArgs data-text="CreateChildArgs"} |
| |
| |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=109)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="CreateChildArgs.numbered_handles"> |
| <td><h3 id="CreateChildArgs.numbered_handles" class="add-link hide-from-toc">1</h3></td> |
| <td><code>numbered_handles</code></td> |
| <td> |
| <code>vector<<a class='link' href='../fuchsia.process/'>fuchsia.process</a>/<a class='link' href='../fuchsia.process/#HandleInfo'>HandleInfo</a>>[128]</code> |
| </td> |
| <td><p>The numbered handles to pass to the component instance.</p> |
| <p>Only PA_FD and PA_USER* handles are valid arguments, and inclusion of any other |
| handles will result in an error. This argument is only supported for components |
| in a collection with <code>SingleRun</code> durability.</p> |
| <p>If the runner for the component does not support the numbered handles it is |
| expected to close the handles.</p> |
| </td> |
| </tr> |
| <tr id="CreateChildArgs.dynamic_offers"> |
| <td><h3 id="CreateChildArgs.dynamic_offers" class="add-link hide-from-toc">2</h3></td> |
| <td><code>dynamic_offers</code></td> |
| <td> |
| <code>vector<<a class='link' href='../fuchsia.component.decl/'>fuchsia.component.decl</a>/<a class='link' href='../fuchsia.component.decl/#Offer'>Offer</a>>[128]</code> |
| </td> |
| <td><p>Dynamic offers that will target the component instance.</p> |
| <p>Including <code>OfferDecl</code>s in this vector will cause additional capabilities |
| to be offered to the newly created child, beyond the <code>OfferDecl</code>s in the |
| parent's <code>ComponentDecl</code> that target the collection.</p> |
| <p>Any kind of offer (e.g., protocol, directory) can be used as a dynamic |
| offer. Any source that would be valid for a static offer is also valid |
| for a dynamic offer. Additionally, unlike static offers, dynamic offers |
| can use a "sibling" dynamic child component as a source by setting the |
| source to a <code>ChildRef</code> that sets the <code>collection</code> field.</p> |
| <p>Dynamic offers always target the newly created child component. As a |
| result, <code>OfferDecl</code>s in <code>dynamic_offers</code> must not set the <code>target</code> |
| field, as its value is implied.</p> |
| <p>If either the source (that is, the component named in the <code>source</code> field |
| of the <code>OfferDecl</code>) or the target of a dynamic offer is destroyed, the |
| offer itself is destroyed simultaneously.</p> |
| <p>In order to set this field to a non-empty value, the collection in which |
| the child component is being created must specify |
| <code>ComponentDecl.allowed_offers = STATIC_AND_DYNAMIC</code>.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **UNIONS** |
| |
| ### Realm_CreateChild_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Realm_CreateChild_Result data-text="Realm_CreateChild_Result"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=73)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Realm_CreateChild_Result.response"> |
| <td><h3 id="Realm_CreateChild_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Realm_CreateChild_Response'>Realm_CreateChild_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Realm_CreateChild_Result.err"> |
| <td><h3 id="Realm_CreateChild_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Realm_DestroyChild_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Realm_DestroyChild_Result data-text="Realm_DestroyChild_Result"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=88)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Realm_DestroyChild_Result.response"> |
| <td><h3 id="Realm_DestroyChild_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Realm_DestroyChild_Response'>Realm_DestroyChild_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Realm_DestroyChild_Result.err"> |
| <td><h3 id="Realm_DestroyChild_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Realm_ListChildren_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Realm_ListChildren_Result data-text="Realm_ListChildren_Result"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=106)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Realm_ListChildren_Result.response"> |
| <td><h3 id="Realm_ListChildren_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Realm_ListChildren_Response'>Realm_ListChildren_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Realm_ListChildren_Result.err"> |
| <td><h3 id="Realm_ListChildren_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Realm_OpenExposedDir_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Realm_OpenExposedDir_Result data-text="Realm_OpenExposedDir_Result"} |
| *Defined in [fuchsia.component/realm.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=52)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Realm_OpenExposedDir_Result.response"> |
| <td><h3 id="Realm_OpenExposedDir_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Realm_OpenExposedDir_Response'>Realm_OpenExposedDir_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Realm_OpenExposedDir_Result.err"> |
| <td><h3 id="Realm_OpenExposedDir_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="MAX_CHILD_COUNT"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=21">MAX_CHILD_COUNT</a></td> |
| <td> |
| <code>128</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum number of children that the a call <code>ChildIterator.Next</code> |
| can return. |
| Note, this is not a limit on the number of children that can be added |
| to a component. This is merely a limit for a single invocation of the |
| <code>Next</code> method.</p> |
| </td> |
| </tr> |
| <tr id="MAX_CHILD_NAME_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=7">MAX_CHILD_NAME_LENGTH</a></td> |
| <td> |
| <code>1024</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_DYNAMIC_OFFER_COUNT"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=14">MAX_DYNAMIC_OFFER_COUNT</a></td> |
| <td> |
| <code>128</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum number of dynamic offers that can target a created component.</p> |
| </td> |
| </tr> |
| <tr id="MAX_HANDLE_COUNT"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/realm.fidl;l=11">MAX_HANDLE_COUNT</a></td> |
| <td> |
| <code>128</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum number of handles that can be passed to a created component.</p> |
| </td> |
| </tr> |
| <tr id="MAX_MONIKER_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=9">MAX_MONIKER_LENGTH</a></td> |
| <td> |
| <code>4096</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_NAME_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=6">MAX_NAME_LENGTH</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_NUM_EVENTS_RECEIVED"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=16">MAX_NUM_EVENTS_RECEIVED</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint64</code></td> |
| <td><p>The maximum number of events that a receiver can listen to.</p> |
| </td> |
| </tr> |
| <tr id="MAX_PATH_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=8">MAX_PATH_LENGTH</a></td> |
| <td> |
| <code>1024</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_SUBSCRIPTION_REQUESTS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=13">MAX_SUBSCRIPTION_REQUESTS</a></td> |
| <td> |
| <code>2</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum number of requests per event subscription.</p> |
| </td> |
| </tr> |
| <tr id="MAX_URL_SCHEME_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/constants.fidl;l=10">MAX_URL_SCHEME_LENGTH</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ## **ALIASES** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="child_name"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/types.fidl;l=6">child_name</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#MAX_CHILD_NAME_LENGTH'>MAX_CHILD_NAME_LENGTH</a></code>]</td> |
| <td></td> |
| </tr> |
| <tr id="name"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/types.fidl;l=7">name</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#MAX_NAME_LENGTH'>MAX_NAME_LENGTH</a></code>]</td> |
| <td></td> |
| </tr> |
| <tr id="url_scheme"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component/types.fidl;l=8">url_scheme</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#MAX_URL_SCHEME_LENGTH'>MAX_URL_SCHEME_LENGTH</a></code>]</td> |
| <td></td> |
| </tr> |
| </table> |