Synchronously invokes every listener registered for event, in registration order.
true if at least one listener was invoked, false if there were none.
The listener list is snapshotted before dispatch, so mutations made by handlers take effect only on subsequent emissions. Listeners are isolated: if one throws, the remaining listeners still run and the error is surfaced via console.error rather than swallowed silently (consistent with LocalMessageBus).
Returns the number of listeners currently registered for event.
The event name to count listeners for.
The count of registered listeners (0 if none).
Registers a listener that is invoked at most once: it is removed automatically before
being called the first time event is emitted.
This emitter, for chaining.
Remove a pending one-time listener by passing the same function reference to off.
Removes listeners for a single event, or for all events.
Optionalevent: "pipeError"The event name to clear; if omitted, listeners for every event are removed.
This emitter, for chaining.
Realizes a CascadeTree's planned parent-to-child links as actual media pipes on a concrete media plane.
Remarks
Subscribes to the tree's
LinkCreated/LinkDroppedevents and forwards them to a CascadePipeInterface (for example ReferenceSfuMedia) aspipeLink/unpipeLinkcalls, so the fan-out tree computed by the control plane becomes real inter-node forwarding. The media methods may be async; the bridge awaits them and emits CascadeBridgeEvent.PipeError on failure (rather than swallowing it), so a broken pipe is visible. Attach it before the firstbuild(); existing links are not replayed. Call CascadeBridge.detach to tear down every pipe it established.