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