class DuplicateSync

Defined at line 1523 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/markers.h

Create additional [`fuchsia.sysmem2/BufferCollectionToken`](s) from this

one, referring to the same buffer collection.

The created tokens are children of this token in the

[`fuchsia.sysmem2/Node`] heirarchy.

This method can be used to add more participants, by transferring the

newly created tokens to additional participants.

A new token will be returned for each entry in the

`rights_attenuation_masks` array.

If the called token may not actually be a valid token due to a

potentially hostile/untrusted provider of the token, consider using

[`fuchsia.sysmem2/Allocator.ValidateBufferCollectionToken`] first

instead of potentially getting stuck indefinitely if

[`fuchsia.sysmem2/BufferCollectionToken.DuplicateSync`] never responds

due to the calling token not being a real token.

In contrast to [`fuchsia.sysmem2/BufferCollectionToken.Duplicate`], no

separate [`fuchsia.sysmem2/Node.Sync`] is needed after calling this

method, because the sync step is included in this call, at the cost of a

round trip during this call.

All tokens must be turned in to sysmem via

[`fuchsia.sysmem2/Allocator.BindSharedCollection`] or

[`fuchsia.sysmem2/Node.Release`] for a `BufferCollection` to

successfully allocate buffers (or to logically allocate buffers in the

case of subtrees involving

[`fuchsia.sysmem2/BufferCollectionToken.AttachToken`]).

All table fields are currently required.

+ request `rights_attenuation_mask` In each entry of

`rights_attenuation_masks`, rights bits that are zero will be absent

in the buffer VMO rights obtainable via the corresponding returned

token. This allows an initiator or intermediary participant to

attenuate the rights available to a participant. This does not allow a

participant to gain rights that the participant doesn't already have.

The value `ZX_RIGHT_SAME_RIGHTS` can be used to specify that no

attenuation should be applied.

- response `tokens` The client ends of each newly created token.

Public Members

static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal