broadcast_bloc library

An extension to the bloc state management library which adds support for broadcasting state changes to stream channels.


Bloc<Event, State>
Takes a Stream of Events as input and transforms them into a Stream of States as output.
An interface for the core functionality implemented by both Bloc and Cubit.
BlocEventSink<Event extends Object?>
An ErrorSink that supports adding events.
An interface for observing the behavior of Bloc instances.
This class facilitates overriding BlocObserver and EventTransformer. It should be extended by another class in client code with overrides that construct a custom implementation. The implementation in this class defaults to the base blocObserver and eventTransformer implementation. For example:
BroadcastBloc<Event, State>
A specialized Bloc which supports broadcasting state changes to all subscribed stream channels.
A specialized Cubit which supports broadcasting state changes to all subscribed stream channels.
A Change represents the change from one State to another. A Change consists of the currentState and nextState.
An object that must be closed when no longer in use.
A Cubit is similar to Bloc but has no notion of events and relies on methods to emit new states.
Emittable<State extends Object?>
An object that can emit new states.
An Emitter is a class which is capable of emitting new states.
A generic destination for errors.
A Streamable that provides synchronous access to the current state.
A StateStreamable that must be closed when no longer in use.
Streamable<State extends Object?>
An object that provides access to a stream of states over time.
Transition<Event, State>
A Transition is the change from one state to another. Consists of the currentState, an event, and the nextState.


A mixin on BlocBase which exposes APIs to subscribe/unsubscribe stream channels and broadcast all state changes to subscribed channels.


EventHandler<Event, State> = FutureOr<void> Function(Event event, Emitter<State> emit)
An event handler is responsible for reacting to an incoming Event and can emit zero or more states via the Emitter.
EventMapper<Event> = Stream<Event> Function(Event event)
Signature for a function which converts an incoming event into an outbound stream of events. Used when defining custom EventTransformers.
EventTransformer<Event> = Stream<Event> Function(Stream<Event> events, EventMapper<Event> mapper)
Used to change how events are processed. By default events are processed concurrently.