ThumperBloc<E> class
ThumperBloc maps ThumperEvent to ThumperState
The events are things like paused, resumed, increased, decreased - things one might do to a thumper. The state is the thumper frequency, the thumpCount, the power setting (reset, idle or running), and some value of E from an iterable, e.g. a list of fruits, or some arbitrarily complex state machine.
This bloc contains and manages a timer that sends events to this (the bloc), so as to emit states at a particular frequency. The bloc's constructor accepts a factory function to make the timer.
Each state contains an E. To get them, the Bloc requires an Iterable
Constructors
-
ThumperBloc(Iterable<
E> _iterable, Iterator<E> _iterator, Spectrum _spectrum, Stream<bool> _timerFactoryFunc(Frequency), int autoThumpLimit, Logger _log) - ThumperBloc accepts
-
ThumperBloc.fromArgs(Iterable<
E> iterable, Spectrum sp, Stream<bool> sf(Frequency), int autoThumpLimit, Logger logger) -
Set the iterator correctly.
factory
-
ThumperBloc.fromIterable(Iterable<
E> iterable) -
Make a ThumperBloc] from an iterable and a reasonable default spectrum.
factory
Properties
- autoThumpLimit → int
-
Automatically pause automatic iteration when this limit hit.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
-
initialState
→ ThumperState<
E> -
no setter
- isClosed → bool
-
Whether the bloc is closed.
no setterinherited
- numDivisions → int
-
The number of divisions that a slider widget would need to represent
the set of frequencies available.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
state
→ ThumperState<
E> -
The current state.
no setterinherited
-
stream
→ Stream<
ThumperState< E> > -
The current stream of states.
no setterinherited
Methods
-
add(
ThumperEvent event) → void -
Notifies the
Bloc
of a newevent
which triggers all correspondingEventHandler
instances.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
error
which triggers onError with an optional StackTrace.inherited -
close(
) → Future< void> -
Closes the
event
andstate
Streams
. This method should be called when aBloc
is no longer needed. Once close is called,events
that are added will not be processed. In addition, if close is called whileevents
are still being processed, theBloc
will finish processing the pendingevents
. -
emit(
ThumperState< E> state) → void -
emit is only for internal use and should never be called directly
outside of tests. The
Emitter
instance provided to eachEventHandler
should be used instead.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
on<
E extends Event> (EventHandler< E, ThumperState< handler, {EventTransformer<E> >E> ? transformer}) → void -
Register event handler for an event of type
E
. There should only ever be one event handler per event typeE
.inherited -
onChange(
Change< ThumperState< change) → voidE> > -
Called whenever a
change
occurs with the givenchange
. Achange
occurs when a newstate
is emitted. onChange is called before thestate
of thecubit
is updated. onChange is a great spot to add logging/analytics for a specificcubit
.inherited -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
error
occurs and notifiesBlocObserver.onError
.inherited -
onEvent(
ThumperEvent event) → void -
Called whenever an
event
is added to theBloc
. A great spot to add logging/analytics at the individualBloc
level.inherited -
onTransition(
Transition< ThumperEvent, ThumperState< transition) → voidE> > -
Called whenever a
transition
occurs with the giventransition
. Atransition
occurs when a newevent
is added and a new state isemitted
from a correspondingEventHandler
.inherited -
reactToFrequencyValue(
double value) → void - Use this to tell the thumper that the frequency should change.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
makeTimerWithFrequency(
Frequency f) → Stream< bool> - Makes a stream that can be used to control the rate of automatic thumps.