template <>

class WireTableBuilder

Defined at line 9776 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

Public Methods

template <typename First = ::fuchsia_sysmem2::wire::SingleBufferSettings, typename... Args, std::enable_if_t<!std::is_same_v<cpp20::remove_cvref_t<First>, fidl::ObjectView<::fuchsia_sysmem2::wire::SingleBufferSettings>>, int> = 0>
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::BufferCollectionInfo> & settings (First && first, Args &&... args_)

These settings apply to all the buffers in the initial buffer

allocation.

This field will always be set by sysmem.

Defined at line 9792 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

template <typename First = ::fuchsia_sysmem2::wire::SingleBufferSettings, typename... Args, std::enable_if_t<!std::is_same_v<cpp20::remove_cvref_t<First>, fidl::ObjectView<::fuchsia_sysmem2::wire::SingleBufferSettings>>, int> = 0>
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::BufferCollectionInfo> & settings (First && first, Args &&... args_)

These settings apply to all the buffers in the initial buffer

allocation.

This field will always be set by sysmem.

Defined at line 9792 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

template <typename First = ::fidl::VectorView<::fuchsia_sysmem2::wire::VmoBuffer>, typename... Args, std::enable_if_t<!std::is_same_v<cpp20::remove_cvref_t<First>, fidl::ObjectView<::fidl::VectorView<::fuchsia_sysmem2::wire::VmoBuffer>>>, int> = 0>
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::BufferCollectionInfo> & buffers (First && first, Args &&... args_)

VMO handles (and vmo_usable_start offset) for each buffer in the

collection.

The size of this vector is the buffer_count (buffer_count is not sent

separately).

All buffer VMO handles have identical size and access rights. The size

is in settings.buffer_settings.size_bytes.

The VMO access rights are determined based on the usages which the

client specified when allocating the buffer collection. For example, a

client which expressed a read-only usage will receive VMOs without write

rights. In addition, the rights can be attenuated by the parameter to

BufferCollectionToken.Duplicate() calls.

This field will always have VmoBuffer(s) in it, even if the participant

specifies usage whieh does not require VMO handles. This permits such a

participant to know the vmo_usable_start values, in case that's of any

use to the participant.

This field will always be set by sysmem, even if the participant doesn't

specify any buffer usage (but the [`fuchsia.sysmem2/VmoBuffer.vmo`]

sub-field within this field won't be set in that case).

Defined at line 9827 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

template <typename First = ::fidl::VectorView<::fuchsia_sysmem2::wire::VmoBuffer>, typename... Args, std::enable_if_t<!std::is_same_v<cpp20::remove_cvref_t<First>, fidl::ObjectView<::fidl::VectorView<::fuchsia_sysmem2::wire::VmoBuffer>>>, int> = 0>
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::BufferCollectionInfo> & buffers (First && first, Args &&... args_)

VMO handles (and vmo_usable_start offset) for each buffer in the

collection.

The size of this vector is the buffer_count (buffer_count is not sent

separately).

All buffer VMO handles have identical size and access rights. The size

is in settings.buffer_settings.size_bytes.

The VMO access rights are determined based on the usages which the

client specified when allocating the buffer collection. For example, a

client which expressed a read-only usage will receive VMOs without write

rights. In addition, the rights can be attenuated by the parameter to

BufferCollectionToken.Duplicate() calls.

This field will always have VmoBuffer(s) in it, even if the participant

specifies usage whieh does not require VMO handles. This permits such a

participant to know the vmo_usable_start values, in case that's of any

use to the participant.

This field will always be set by sysmem, even if the participant doesn't

specify any buffer usage (but the [`fuchsia.sysmem2/VmoBuffer.vmo`]

sub-field within this field won't be set in that case).

Defined at line 9827 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

template <typename First = uint64_t, typename... Args, std::enable_if_t<!std::is_same_v<cpp20::remove_cvref_t<First>, fidl::ObjectView<uint64_t>>, int> = 0>
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::BufferCollectionInfo> & buffer_collection_id (First && first, Args &&... args_)

This number is unique among all logical buffer collections per boot.

This ID number will be the same for all BufferCollectionToken(s),

BufferCollection(s), and BufferCollectionTokenGroup(s) associated with

the same logical buffer collection (derived from the same root token

created with fuchsia.sysmem2.Allocator.CreateSharedCollection, or with

CreateNonSharedCollection).

The same ID can be retrieved from a BufferCollectionToken,

BufferCollection, or BufferCollectionTokenGroup using

GetBufferCollectionId (at the cost of a round-trip to sysmem and back).

This field will always be set by sysmem.

Defined at line 9852 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

template <typename First = uint64_t, typename... Args, std::enable_if_t<!std::is_same_v<cpp20::remove_cvref_t<First>, fidl::ObjectView<uint64_t>>, int> = 0>
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::BufferCollectionInfo> & buffer_collection_id (First && first, Args &&... args_)

This number is unique among all logical buffer collections per boot.

This ID number will be the same for all BufferCollectionToken(s),

BufferCollection(s), and BufferCollectionTokenGroup(s) associated with

the same logical buffer collection (derived from the same root token

created with fuchsia.sysmem2.Allocator.CreateSharedCollection, or with

CreateNonSharedCollection).

The same ID can be retrieved from a BufferCollectionToken,

BufferCollection, or BufferCollectionTokenGroup using

GetBufferCollectionId (at the cost of a round-trip to sysmem and back).

This field will always be set by sysmem.

Defined at line 9852 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h

Friends

template <>
class BufferCollectionInfo