class UseProtocol

Defined at line 7325 of file fidling/gen/sdk/fidl/fuchsia.component.decl/fuchsia.component.decl/cpp/fidl/fuchsia.component.decl/cpp/natural_types.h

Declares a protocol used by a component, which was offered to it.

A protocol is a service with a single instance, provided by a single FIDL

protocol.

Public Methods

void UseProtocol (Storage_ storage)
void UseProtocol ()

Defined at line 7330 of file fidling/gen/sdk/fidl/fuchsia.component.decl/fuchsia.component.decl/cpp/fidl/fuchsia.component.decl/cpp/natural_types.h

void UseProtocol (UseProtocol && )

Defined at line 7331 of file fidling/gen/sdk/fidl/fuchsia.component.decl/fuchsia.component.decl/cpp/fidl/fuchsia.component.decl/cpp/natural_types.h

void UseProtocol (const UseProtocol & other)
UseProtocol & operator= (UseProtocol && )

Defined at line 7332 of file fidling/gen/sdk/fidl/fuchsia.component.decl/fuchsia.component.decl/cpp/fidl/fuchsia.component.decl/cpp/natural_types.h

UseProtocol & operator= (const UseProtocol & other)
bool operator== (const UseProtocol & other)
bool operator!= (const UseProtocol & other)
bool IsEmpty ()
const std::optional< ::fuchsia_component_decl::Ref> & source ()

(Required) The provider of the protocol relative to the component

itself. Must be `parent`, `framework`, `debug`, `capability` or `child`.

::std::optional< ::fuchsia_component_decl::Ref> & source ()

(Required) The provider of the protocol relative to the component

itself. Must be `parent`, `framework`, `debug`, `capability` or `child`.

UseProtocol & source (std::optional< ::fuchsia_component_decl::Ref> value)

(Required) The provider of the protocol relative to the component

itself. Must be `parent`, `framework`, `debug`, `capability` or `child`.

const std::optional< ::std::string> & source_name ()

(Required) Name identifying the protocol, by which it was presented to this

component.

::std::optional< ::std::string> & source_name ()

(Required) Name identifying the protocol, by which it was presented to this

component.

UseProtocol & source_name (std::optional< ::std::string> value)

(Required) Name identifying the protocol, by which it was presented to this

component.

const std::optional< ::std::string> & target_path ()

(Required) The path where the capability should be installed in the component's

namespace.

Must be an absolute path starting with /.

::std::optional< ::std::string> & target_path ()

(Required) The path where the capability should be installed in the component's

namespace.

Must be an absolute path starting with /.

UseProtocol & target_path (std::optional< ::std::string> value)

(Required) The path where the capability should be installed in the component's

namespace.

Must be an absolute path starting with /.

const std::optional< ::fuchsia_component_decl::DependencyType> & dependency_type ()

(Required) The dependency type this use represents.

A component which offers a capability to a child from itself and uses a

capability from the same child, must mark the dependency as `weak`. A

`weak` dependency implies that the capability may become unavailable at

any point. Taking a strong dependency on a child's capability will

cause this the child to shut down before its parent. When using a weak

dependency, the parent shuts down before the child.

::std::optional< ::fuchsia_component_decl::DependencyType> & dependency_type ()

(Required) The dependency type this use represents.

A component which offers a capability to a child from itself and uses a

capability from the same child, must mark the dependency as `weak`. A

`weak` dependency implies that the capability may become unavailable at

any point. Taking a strong dependency on a child's capability will

cause this the child to shut down before its parent. When using a weak

dependency, the parent shuts down before the child.

UseProtocol & dependency_type (std::optional< ::fuchsia_component_decl::DependencyType> value)

(Required) The dependency type this use represents.

A component which offers a capability to a child from itself and uses a

capability from the same child, must mark the dependency as `weak`. A

`weak` dependency implies that the capability may become unavailable at

any point. Taking a strong dependency on a child's capability will

cause this the child to shut down before its parent. When using a weak

dependency, the parent shuts down before the child.

const std::optional< ::fuchsia_component_decl::Availability> & availability ()

(Optional, defaults to `REQUIRED`) The availability of this capability.

If set to `required`, the component is likely to malfunction if this

capability is not provided. If set to `optional`, the component can

handle the capability's absence.

::std::optional< ::fuchsia_component_decl::Availability> & availability ()

(Optional, defaults to `REQUIRED`) The availability of this capability.

If set to `required`, the component is likely to malfunction if this

capability is not provided. If set to `optional`, the component can

handle the capability's absence.

UseProtocol & availability (std::optional< ::fuchsia_component_decl::Availability> value)

(Optional, defaults to `REQUIRED`) The availability of this capability.

If set to `required`, the component is likely to malfunction if this

capability is not provided. If set to `optional`, the component can

handle the capability's absence.

const std::optional< ::std::string> & source_dictionary ()

(Optional) Path in a dictionary provided by `source` which contains `source_name`.

If this field is absent, `source_name` identifies a capability directly routed

by `source`. If set, `source_name` identifies a capability nested inside this

dictionary.

::std::optional< ::std::string> & source_dictionary ()

(Optional) Path in a dictionary provided by `source` which contains `source_name`.

If this field is absent, `source_name` identifies a capability directly routed

by `source`. If set, `source_name` identifies a capability nested inside this

dictionary.

UseProtocol & source_dictionary (std::optional< ::std::string> value)

(Optional) Path in a dictionary provided by `source` which contains `source_name`.

If this field is absent, `source_name` identifies a capability directly routed

by `source`. If set, `source_name` identifies a capability nested inside this

dictionary.

const std::optional<uint8_t> & numbered_handle ()

(Optional) A processargs ordinal (zircon/processargs.h) by which a channel to this protocol

will be delivered to the component's processargs.

Must be a valid processargs ordinal defined in `zircon/processargs.h`.

If this is set, we still require `target_path` to also be set, although we could relax this

restriction in the future.

::std::optional<uint8_t> & numbered_handle ()

(Optional) A processargs ordinal (zircon/processargs.h) by which a channel to this protocol

will be delivered to the component's processargs.

Must be a valid processargs ordinal defined in `zircon/processargs.h`.

If this is set, we still require `target_path` to also be set, although we could relax this

restriction in the future.

UseProtocol & numbered_handle (std::optional<uint8_t> value)

(Optional) A processargs ordinal (zircon/processargs.h) by which a channel to this protocol

will be delivered to the component's processargs.

Must be a valid processargs ordinal defined in `zircon/processargs.h`.

If this is set, we still require `target_path` to also be set, although we could relax this

restriction in the future.

void UseProtocol (::fidl::internal::DefaultConstructPossiblyInvalidObjectTag )

Friends

class MemberVisitor
class NaturalTableCodingTraits