template <>
class WireWeakOnewayBufferClientImpl
Defined at line 19481 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_messaging.h
Public Methods
::fidl::OneWayStatus AllocateNonSharedCollection (::fuchsia_sysmem2::wire::AllocatorAllocateNonSharedCollectionRequest AllocatorAllocateNonSharedCollectionRequest)
Allocates a buffer collection on behalf of a single client (aka
initiator) who is also the only participant (from the point of view of
sysmem).
This call exists mainly for temp/testing purposes. This call skips the
[`fuchsia.sysmem2/BufferCollectionToken`] stage, so there's no way to
allow another participant to specify its constraints.
Real clients are encouraged to use
[`fuchsia.sysmem2/Allocator.AllocateSharedCollection`] instead, and to
let relevant participants directly convey their own constraints to
sysmem by sending `BufferCollectionToken`s to those participants.
+ request `collection_request` The server end of the
[`fuchsia.sysmem2/BufferCollection`].
Caller provides the backing storage for FIDL message.
::fidl::OneWayStatus AllocateSharedCollection (::fuchsia_sysmem2::wire::AllocatorAllocateSharedCollectionRequest AllocatorAllocateSharedCollectionRequest)
Creates a root [`fuchsia.sysmem2/BufferCollectionToken`].
The `BufferCollectionToken` can be "duplicated" for distribution to
participants by using
[`fuchsia.sysmem2/BufferCollectionToken.Duplicate`]. Each
`BufferCollectionToken` can be converted into a
[`fuchsia.sysmem2.BufferCollection`] using
[`fuchsia.sysmem2/Allocator.BindSharedCollection`].
Buffer constraints can be set via
[`fuchsia.sysmem2/BufferCollection.SetConstraints`].
Success/failure to populate the buffer collection with buffers can be
determined from
[`fuchsia.sysmem2/BufferCollection.WaitForAllBuffersAllocated`].
Closing the client end of a `BufferCollectionToken` or
`BufferCollection` (without `Release` first) will fail all client ends
in the same failure domain, which by default is all client ends of the
buffer collection. See
[`fuchsia.sysmem2/BufferCollection.SetDispensable`] and
[`fuchsia.sysmem2/BufferCollection.AttachToken`] for ways to create
separate failure domains within a buffer collection.
Caller provides the backing storage for FIDL message.
::fidl::OneWayStatus BindSharedCollection (::fuchsia_sysmem2::wire::AllocatorBindSharedCollectionRequest AllocatorBindSharedCollectionRequest)
Convert a [`fuchsia.sysmem2/BufferCollectionToken`] into a
[`fuchsia.sysmem2/BufferCollection`].
At the time of sending this message, the buffer collection hasn't yet
been populated with buffers - the participant must first also send
[`fuchsia.sysmem2/BufferCollection.SetConstraints`] via the
`BufferCollection` client end.
All `BufferCollectionToken`(s) duplicated from a root
`BufferCollectionToken` (created via `AllocateSharedCollection`) must be
"turned in" via `BindSharedCollection` (or `Release`ed), and all
existing `BufferCollection` client ends must have sent `SetConstraints`
before the logical BufferCollection will be populated with buffers (or
will fail if the overall set of constraints can't be satisfied).
+ request `token` The client endpoint of a channel whose server end was
sent to sysmem using
[`fuchsia.sysmem2/Allocator.AllocateSharedCollection`] or whose server
end was sent to sysmem using
[`fuchsia.sysmem2/BufferCollectionToken.Duplicate`]. The token is
being "turned in" in exchange for a
[`fuchsia.sysmem2/BufferCollection`].
+ request `buffer_collection_request` The server end of a
[`fuchsia.sysmem2/BufferCollection`] channel. The sender retains the
client end. The `BufferCollection` channel is a single participant's
connection to the logical buffer collection. Typically there will be
other participants with their own `BufferCollection` channel to the
logical buffer collection.
Caller provides the backing storage for FIDL message.
::fidl::OneWayStatus SetDebugClientInfo (::fuchsia_sysmem2::wire::AllocatorSetDebugClientInfoRequest AllocatorSetDebugClientInfoRequest)
Set information about the current client that can be used by sysmem to
help diagnose leaking memory and allocation stalls waiting for a
participant to send [`fuchsia.sysmem2/BufferCollection.SetConstraints`].
This sets the debug client info on all [`fuchsia.sysmem2/Node`](s)
subsequently created by this this [`fuchsia.sysmem2/Allocator`]
including any [`fuchsia.sysmem2/BufferCollection`](s) created via
[`fuchsia.sysmem2/Allocator.BindSharedCollection`] (in the absence of
any prior call to [`fuchsia.sysmem2/Allocator.SetDebugClientInfo`],
these `BufferCollection`(s) have the same initial debug client info as
the token turned in to create the `BufferCollection`).
This info can be subsequently overridden on a per-`Node` basis by
sending [`fuchsia.sysmem2/Node.SetDebugClientInfo`].
Sending [`fuchsia.sysmem2/Allocator.SetDebugClientInfo`] once per
`Allocator` is the most efficient way to ensure that all
[`fuchsia.sysmem2/Node`](s) will have at least some debug client info
set, and is also more efficient than separately sending the same debug
client info via [`fuchsia.sysmem2/Node.SetDebugClientInfo`] for each
created [`fuchsia.sysmem2/Node`].
+ request `name` This can be an arbitrary string, but the current
process name (see `fsl::GetCurrentProcessName`) is a good default.
+ request `id` This can be an arbitrary id, but the current process ID
(see `fsl::GetCurrentProcessKoid`) is a good default.
Caller provides the backing storage for FIDL message.