class CreateSplitter
Defined at line 240 of file fidling/gen/sdk/fidl/fuchsia.audio.mixer/fuchsia.audio.mixer/cpp/fidl/fuchsia.audio.mixer/cpp/markers.h
Creates a Splitter node with the given options.
Splitter nodes copy a single source stream into multiple destination
streams. Each Splitter node has a hidden Consumer node which is
responsible for pulling data from the Splitter's source and writing that
data to an intermediate buffer. Destination streams read directly from
this buffer. For more details on this behavior, see "Execution Model"
under the description for [`Graph`].
Each Splitter is assigned to a thread which drives the hidden Consumer's
work to fill the intermediate buffer. Destination streams can be
assigned to any thread. If a destination stream is assigned to the same
thread as the Splitter, that stream can copy the Splitter's source
stream without any additional latency. If a destination stream is
assigned to a different thread T, then extra buffering is required to
avoid data races -- that extra buffering adds additional latency of
`T.period`.
Current limitation: The Splitter does not fill its intermediate buffer
unless it has at least one destination stream that is started and that
is assigned to the same thread as the Splitter. This limitation may be
lifted at a future time.
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