class DataTransfer

Defined at line 3794 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 3822 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 3826 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 3831 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 3839 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 3845 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 3849 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 3856 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 3863 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 3878 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 3881 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 3887 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 3807 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h

Friends

class Equality