class SetWeak
Defined at line 1364 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/markers.h
Sets the current [`fuchsia.sysmem2/Node`] and all child `Node`(s)
created after this message to weak, which means that a client's `Node`
client end (or a child created after this message) is not alone
sufficient to keep allocated VMOs alive.
All VMOs obtained from weak `Node`(s) are weak sysmem VMOs. See also
`close_weak_asap`.
This message is only permitted before the `Node` becomes ready for
allocation (else the server closes the channel with `ZX_ERR_BAD_STATE`):
* `BufferCollectionToken`: any time
* `BufferCollection`: before `SetConstraints`
* `BufferCollectionTokenGroup`: before `AllChildrenPresent`
Currently, no conversion from strong `Node` to weak `Node` after ready
for allocation is provided, but a client can simulate that by creating
an additional `Node` before allocation and setting that additional
`Node` to weak, and then potentially at some point later sending
`Release` and closing the client end of the client's strong `Node`, but
keeping the client's weak `Node`.
Zero strong `Node`(s) and zero strong VMO handles will result in buffer
collection failure (all `Node` client end(s) will see
`ZX_CHANNEL_PEER_CLOSED` and all `close_weak_asap` `client_end`(s) will
see `ZX_EVENTPAIR_PEER_CLOSED`), but sysmem (intentionally) won't notice
this situation until all `Node`(s) are ready for allocation. For initial
allocation to succeed, at least one strong `Node` is required to exist
at allocation time, but after that client receives VMO handles, that
client can `BufferCollection.Release` and close the client end without
causing this type of failure.
This implies [`fuchsia.sysmem2/Node.SetWeakOk`] as well, but does not
imply `SetWeakOk` with `for_children_also` true, which can be sent
separately as appropriate.
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