class DataTransfer

Defined at line 4448 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.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 Members

static const fidl_type_t * FidlType

Public Methods

void DataTransfer ()
void DataTransfer (DataTransfer && )
DataTransfer & operator= (DataTransfer && )
DataTransfer WithVmoTransfer (::fuchsia::hardware::audio::VmoTransfer && )
DataTransfer WithInlineData (::std::vector<uint8_t> && )
::std::unique_ptr<DataTransfer> New ()
void Encode (::fidl::Encoder * encoder, size_t offset, std::optional< ::fidl::HandleInformation> maybe_handle_info)
void Decode (::fidl::Decoder * _decoder, DataTransfer * value, size_t offset)
zx_status_t Clone (DataTransfer * result)
DataTransfer & set_vmo_transfer (::fuchsia::hardware::audio::VmoTransfer value)
DataTransfer & SetUnknownData (fidl_xunion_tag_t ordinal, std::vector<uint8_t> bytes, std::vector<zx::handle> handles)
bool has_invalid_tag ()

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

bool is_vmo_transfer ()

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

DataTransfer & set_inline_data (::std::vector<uint8_t> value)
::fuchsia::hardware::audio::VmoTransfer & vmo_transfer ()

Data is stored in a region of a registered VMO.

Requires `PacketStreamProperties.supported_buffer_types` to include `CLIENT_OWNED`

or `DRIVER_OWNED`.

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

const ::fuchsia::hardware::audio::VmoTransfer & vmo_transfer ()

Data is stored in a region of a registered VMO.

Requires `PacketStreamProperties.supported_buffer_types` to include `CLIENT_OWNED`

or `DRIVER_OWNED`.

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

bool is_inline_data ()

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

::std::vector<uint8_t> & inline_data ()

Embedded data buffer.

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

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

const ::std::vector<uint8_t> & inline_data ()

Embedded data buffer.

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

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

::fuchsia::hardware::audio::DataTransfer::Tag Which ()

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

fidl_xunion_tag_t Ordinal ()

You probably want to use Which() method instead of Ordinal(). Use Ordinal() only when you need

access to the raw integral ordinal value.

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

const std::vector<uint8_t> * UnknownBytes ()

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

const std::vector<zx::handle> * UnknownHandles ()

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

void ~DataTransfer ()

Enumerations

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

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

Friends

class Equality