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