class DataTransfer

Defined at line 3704 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/natural_types.h

Data to be transferred. There are two supported ways data may be conveyed, corresponding to the

two members of the DataTransfer union:

1) vmo_transfer: A region within a VMO previously known to the driver. This VMO must have been

established via `PacketStreamControl.RegisterVmos` (if client-allocated) or

`PacketStreamControl.AllocateVmos` (if driver-allocated). Future requests refer to this

buffer by the unique `vmo_id`. Because VMOs are reused across requests, the one-time

cost of pinning/mapping is amortized.

2) data: The payload is provided directly within the message. This mode is intended for

small transfers or control information, not high-throughput streaming.

Public Methods

void DataTransfer (DataTransfer && other)
DataTransfer & operator= (DataTransfer && other)
bool IsUnknown ()
::fuchsia_hardware_audio::DataTransfer::Tag Which ()
DataTransfer WithVmoTransfer (::fuchsia_hardware_audio::VmoTransfer val)
const ::fidl::internal::UnionMemberView<1, Storage_> vmo_transfer ()
::fidl::internal::UnionMemberView<1, Storage_> vmo_transfer ()
DataTransfer & vmo_transfer (::fuchsia_hardware_audio::VmoTransfer value)

Data is stored in a region of a registered VMO.

Requires `PacketStreamProperties.supported_buffer_types` to include `CLIENT_OWNED`

or `DRIVER_OWNED`.

DataTransfer WithInlineData (::std::vector<uint8_t> val)
const ::fidl::internal::UnionMemberView<2, Storage_> inline_data ()
::fidl::internal::UnionMemberView<2, Storage_> inline_data ()
DataTransfer & inline_data (::std::vector<uint8_t> value)

Embedded data buffer.

Requires `PacketStreamProperties.supported_buffer_types` to include `INLINE`.

void DataTransfer (::fidl::internal::DefaultConstructPossiblyInvalidObjectTag )

Enumerations

enum Tag
Name Value
kVmoTransfer 1
kInlineData 2
_do_not_handle_this__write_a_default_case_instead ::std::numeric_limits<::fidl_union_tag_t>::max()

TODO: share union tag types between wire

&

natural.

Defined at line 3714 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/natural_types.h

Friends

class NaturalUnionCodingTraits