class NodeProtocolKinds

Defined at line 1125 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

A node may have multiple supported representations when opening, even though

it may have a fixed underlying identity.

Today, a file is accessed via the [`File`] protocol, and sends a

[`Representation.FileInfo`] when opened with `GET_REPRESENTATION`. However,

in the future we might introduce a more sophisticated `FileV2` protocol, or

a more efficient `SuperFastFile` backed by a specialized kernel object. New

clients can request the more advanced representations by specifying the

corresponding bits in [`NodeProtocolKinds`], whereas existing clients would

continue to talk to the node via the old representation.

[`NodeProtocolKinds`] enables forward-compatibility through a form of protocol

negotiation.

The elements have one-to-one correspondence with the members of

[`Representation`].

|NodeProtocolKinds| is flexible, hence may contain unknown members not

defined in the FIDL schema.

Public Members

static NodeProtocolKinds CONNECTOR
static NodeProtocolKinds DIRECTORY
static NodeProtocolKinds FILE
static NodeProtocolKinds kMask

Public Methods

void NodeProtocolKinds ()

Defined at line 1127 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

std::optional<NodeProtocolKinds> TryFrom (uint64_t value)

Constructs an instance of |NodeProtocolKinds| from an underlying primitive value

if the primitive does not contain any unknown members not defined in the

FIDL schema. Otherwise, returns |std::nullopt|.

Defined at line 1132 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

NodeProtocolKinds TruncatingUnknown (uint64_t value)

Constructs an instance of |NodeProtocolKinds| from an underlying primitive value,

clearing any bit member not defined in the FIDL schema.

Defined at line 1141 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

void NodeProtocolKinds (uint64_t value)

Constructs an instance of |NodeProtocolKinds| from an underlying primitive value,

preserving any bit member not defined in the FIDL schema.

Defined at line 1147 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

uint64_t operator unsigned long ()

Defined at line 1154 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

bool operator bool ()

Defined at line 1155 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

bool operator== (const NodeProtocolKinds & other)

Defined at line 1156 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

bool operator!= (const NodeProtocolKinds & other)

Defined at line 1157 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

NodeProtocolKinds unknown_bits ()

Defined at line 1165 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

bool has_unknown_bits ()

Defined at line 1168 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

NodeProtocolKinds operator~ ()

Defined at line 1183 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

NodeProtocolKinds operator| (const NodeProtocolKinds & other)

Defined at line 1187 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

NodeProtocolKinds operator& (const NodeProtocolKinds & other)

Defined at line 1192 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

NodeProtocolKinds operator^ (const NodeProtocolKinds & other)

Defined at line 1197 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

void operator|= (const NodeProtocolKinds & other)

Defined at line 1202 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

void operator&= (const NodeProtocolKinds & other)

Defined at line 1207 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h

void operator^= (const NodeProtocolKinds & other)

Defined at line 1212 of file fidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp/fuchsia/io/cpp/fidl.h