The default implementation of the signal.
A signal that emits events that are mutable values.
A proxy that emits events from the underlying signal and has the same value as the underlying signal.
A signal that is the aggregation of the values of other signals
.
A signal that is the aggregation of the values of other signals
.
At any point during execution this signal will contain
an event obtained by applying op
on the values of all
the events in signals
.
This signal aggregate is called a static aggregate
since the signals
set is specified during aggregate
creation and cannot be changed afterwards.
The signal aggregate creates an aggregation tree data structure,
so a value update in one of the signals
requires only O(log n)
steps to update the value of the aggregate signal.
Example:
val emitters = for (0 until 10) yield new Reactive.Emitter[Int] val ag = Signal.Aggregate(emitters)(_ + _)
The aggregation operator needs to be associative, but does not need to be commutative. For example, string concatenation for signals of strings or addition for integer signals is perfectly fine. Subtraction for integer signals, for example, is not associative and not allowed.
type of the aggregate signal
signals for the aggregation
the aggregation operator, must be associative
A signal that never changes its value.
A signal that never changes its value.
the type of this signal
the constant value of this signal
the resulting constant signal
Creates a mutable signal.
Creates a mutable signal.
the type of the underlying mutable object
the mutable object