trait RescalaInterface extends EventBundle with SignalBundle with FlattenApi with Sources with DefaultImplementations with Observing with Core with SignalCompatBundle with EventCompatBundle
Rescala has two main abstractions. Event and Signal commonly referred to as reactives. Use Var to create signal sources and Evt to create event sources.
Events and signals can be created from other reactives by using combinators, signals additionally can be created using Signal expressions.
- Grouped
- Alphabetic
- By Inheritance
- RescalaInterface
- SignalCompatBundle
- Observing
- DefaultImplementations
- Sources
- FlattenApi
- FlattenCollectionCompat
- SignalBundle
- EventBundle
- EventCompatBundle
- InterpBundle
- Core
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
trait
EventCompat[+T] extends (EventCompatBundle.this)#InterpMacro[Option[T]]
- Definition Classes
- EventCompatBundle
-
trait
SignalCompat[+T] extends (SignalCompatBundle.this)#InterpMacro[T]
- Definition Classes
- SignalCompatBundle
-
class
UserDefinedFunction[+T, Dep, Cap] extends AnyRef
- Definition Classes
- SignalCompatBundle
-
trait
AccessTicket extends AnyRef
- Definition Classes
- Core
-
abstract
class
AdmissionTicket extends InnerTicket with AccessTicket
Enables reading of the current value during admission.
Enables reading of the current value during admission. Keeps track of written sources internally.
- Definition Classes
- Core
-
abstract
class
Base[V] extends ReSource
Base implementation for reactives, with Derived for scheduling, together with a ReName and containing a State
-
final
class
CreationTicket extends AnyRef
Enables the creation of other reactives
Enables the creation of other reactives
- Definition Classes
- Core
- Annotations
- @implicitNotFound( ... )
-
trait
Derived extends ReSource
A reactive value is something that can be reevaluated
A reactive value is something that can be reevaluated
- Definition Classes
- Core
-
trait
Disconnectable extends AnyRef
- Definition Classes
- Core
-
trait
DisconnectableImpl extends Derived with Disconnectable
- Definition Classes
- Core
-
trait
DynamicInitializerLookup[ExactInitializer <: Initializer] extends Scheduler
- Definition Classes
- Core
-
abstract
class
DynamicTicket extends StaticTicket
User facing low level API to access values in a dynamic context.
User facing low level API to access values in a dynamic context.
- Definition Classes
- Core
-
trait
InitialChange extends AnyRef
Encapsulates an action changing a single source.
Encapsulates an action changing a single source.
- Definition Classes
- Core
-
trait
Initializer extends AnyRef
- Definition Classes
- Core
-
class
InnerTicket extends AnyRef
InnerTickets are used in Rescala to give capabilities to contexts during propagation.
InnerTickets are used in Rescala to give capabilities to contexts during propagation. ReevTicket is used during reevaluation, and AdmissionTicket during the initialization.
- Definition Classes
- Core
-
trait
Interp[+A] extends ReSource
Common macro accessors for rescala.operator.SignalBundle.Signal and rescala.operator.EventBundle.Event
Common macro accessors for rescala.operator.SignalBundle.Signal and rescala.operator.EventBundle.Event
- A
return type of the accessor
- Definition Classes
- Core
-
sealed
trait
LowPriorityCreationImplicits extends AnyRef
If no InnerTicket is found, then these implicits will search for a Scheduler, creating the reactives outside of any turn.
If no InnerTicket is found, then these implicits will search for a Scheduler, creating the reactives outside of any turn.
- Definition Classes
- Core
-
trait
Observation extends AnyRef
- Definition Classes
- Core
-
trait
ReSource extends AnyRef
Source of (reactive) values.
Source of (reactive) values. State can only be accessed with a correct InnerTicket.
- Definition Classes
- Core
-
abstract
class
ReevTicket[V] extends DynamicTicket with Result[V]
ReevTicket is given to the Derived reevaluate method and allows to access other reactives.
ReevTicket is given to the Derived reevaluate method and allows to access other reactives. The ticket tracks return values, such as dependencies, the value, and if the value should be propagated. Such usages make it unsuitable as an API for the user, where StaticTicket or DynamicTicket should be used instead.
- Definition Classes
- Core
-
trait
Result[T] extends AnyRef
- Definition Classes
- Core
-
trait
Scheduler extends AnyRef
Propagation engine that defines the basic data-types available to the user and creates turns for propagation handling
Propagation engine that defines the basic data-types available to the user and creates turns for propagation handling
- Definition Classes
- Core
- Annotations
- @implicitNotFound( ... )
-
sealed abstract
class
StaticTicket extends InnerTicket
User facing low level API to access values in a static context.
User facing low level API to access values in a static context.
- Definition Classes
- Core
-
abstract
type
State[_]
- Definition Classes
- Core
-
trait
InterpMacro[+A] extends Interp[A] with MacroAccess[A, Interp[A]]
- Definition Classes
- InterpBundle
-
class
ChangeEventImpl[T] extends (DefaultImplementations.this)#Base[(Pulse[T], Pulse[Diff[T]])] with (DefaultImplementations.this)#Derived with (DefaultImplementations.this)#Event[Diff[T]] with (DefaultImplementations.this)#DisconnectableImpl
- Definition Classes
- DefaultImplementations
-
abstract
class
DerivedImpl[T] extends (DefaultImplementations.this)#Base[Pulse[T]] with (DefaultImplementations.this)#Derived with (DefaultImplementations.this)#DisconnectableImpl
- Definition Classes
- DefaultImplementations
-
class
EventImpl[T] extends (DefaultImplementations.this)#DerivedImpl[T] with (DefaultImplementations.this)#Event[T]
- Definition Classes
- DefaultImplementations
-
class
SignalImpl[T] extends (DefaultImplementations.this)#DerivedImpl[T] with (DefaultImplementations.this)#Signal[T]
- Definition Classes
- DefaultImplementations
-
trait
Event[+T] extends (EventBundle.this)#ReSource with (EventBundle.this)#EventCompat[T] with (EventBundle.this)#InterpMacro[Option[T]] with (EventBundle.this)#Disconnectable
Events only propagate a value when they are changing, when the system is at rest, events have no values.
Events only propagate a value when they are changing, when the system is at rest, events have no values.
Note: We hide implicit parameters of the API in the documentation. They are used to ensure correct creation, and you normally do not have to worry about them, except if you accidentally call the implicit parameter list, in which cas you may get cryptic errors. This is a scala limitation. We also hide the internal state parameter of passed and returned events.
- T
Value type of the event occurrences.
- Definition Classes
- EventBundle
-
trait
Flatten[-A, R] extends AnyRef
- Definition Classes
- FlattenApi
- Annotations
- @implicitNotFound( ... )
-
trait
Observe extends AnyRef
Generic interface for observers that represent a function registered to trigger for every reevaluation of a reactive value.
Generic interface for observers that represent a function registered to trigger for every reevaluation of a reactive value. Currently this interface is only used to allow a removal of registered observer functions.
- Definition Classes
- Observing
-
trait
ObserveInteract extends Observation
- Definition Classes
- Observing
-
trait
Signal[+T] extends (SignalBundle.this)#Disconnectable with (SignalBundle.this)#SignalCompat[T]
Time changing value derived from the dependencies.
Time changing value derived from the dependencies.
- T
Type stored by the signal
- Definition Classes
- SignalBundle
-
class
Evt[T] extends (Sources.this)#Base[Pulse[T]] with (Sources.this)#Source[T] with (Sources.this)#Event[T]
Source events with imperative occurrences
Source events with imperative occurrences
- T
Type returned when the event fires
- Definition Classes
- Sources
-
trait
Source[T] extends (Sources.this)#ReSource
- Definition Classes
- Sources
-
class
Var[A] extends (Sources.this)#Base[Pulse[A]] with (Sources.this)#Source[A] with (Sources.this)#Signal[A] with (Sources.this)#Interp[A]
Source signals with imperatively updates.
Concrete Value Members
-
object
Event
Similar to rescala.compat.SignalCompatBundle.Signal expressions, but resulting in an event.
Similar to rescala.compat.SignalCompatBundle.Signal expressions, but resulting in an event. Accessed events return options depending on whether they fire or not, and the complete result of the expression is an event as well.
- Definition Classes
- EventCompatBundle
- See also
-
object
Signal
A signal expression can be used to create signals accessing arbitrary other signals.
A signal expression can be used to create signals accessing arbitrary other signals. Use the apply method on a signal to access its value inside of a signal expression.
val a: Signal[Int] val b: Signal[Int] val result: Signal[String] = Signal { a().toString + b().toString}
- Definition Classes
- SignalCompatBundle
-
object
UserDefinedFunction
- Definition Classes
- SignalCompatBundle
-
object
CreationTicket extends LowPriorityCreationImplicits
As reactives can be created during propagation, any InnerTicket can be converted to a creation ticket.
As reactives can be created during propagation, any InnerTicket can be converted to a creation ticket.
- Definition Classes
- Core
-
object
Scheduler
- Definition Classes
- Core
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
Evt[A]()(implicit ticket: CreationTicket): Evt[A]
- Definition Classes
- Sources
- implicit def OnEv[T](e: Event[T]): OnEv[T]
- implicit def OnEvs[T](e: ⇒ Seq[Event[T]]): OnEvs[T]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
firstFiringEvent[B, T[U] <: TraversableLike[U, T[U]], Evnt[A1] <: Event[A1]](implicit ticket: CreationTicket, cbf: CanBuildFrom[T[_], Option[B], T[Option[B]]]): Flatten[Signal[T[Evnt[B]]], Event[B]]
Flatten a Signal[Traversable[Event[B]\]\] into a Event[B].
Flatten a Signal[Traversable[Event[B]\]\] into a Event[B]. The new Event fires the value of any inner firing Event. If multiple inner Events fire, the first one in iteration order is selected.
- Definition Classes
- FlattenCollectionCompat
-
implicit
def
flattenImplicitForarraySignals[B, Sig[U] <: Signal[U]](implicit arg0: ClassTag[B], ticket: CreationTicket): Flatten[Signal[Array[Sig[B]]], Signal[Array[B]]]
Flatten a Signal[Array[Signal[B]\]\] into a Signal[Array[B]\] where the new Signal updates whenever any of the inner or the outer signal updates
Flatten a Signal[Array[Signal[B]\]\] into a Signal[Array[B]\] where the new Signal updates whenever any of the inner or the outer signal updates
- Definition Classes
- FlattenApi
-
implicit
def
flattenImplicitForevent[A, B, Evnt[A1] <: Event[A1]](implicit ticket: CreationTicket): Flatten[Signal[Evnt[B]], Event[B]]
Flatten a Signal[Event[B]]\] into a Event[B] where the new Event fires whenever the current inner event fires
Flatten a Signal[Event[B]]\] into a Event[B] where the new Event fires whenever the current inner event fires
- Definition Classes
- FlattenApi
-
implicit
def
flattenImplicitForoption[A, B](implicit ticket: CreationTicket): Flatten[Event[Option[B]], Event[B]]
Flatten a Event[Option[B]\] into a Event[B] that fires whenever the inner option is defined.
Flatten a Event[Option[B]\] into a Event[B] that fires whenever the inner option is defined.
- Definition Classes
- FlattenApi
-
implicit
def
flattenImplicitForoptionSignal[B, Sig[U] <: Signal[U]](implicit ticket: CreationTicket): Flatten[Signal[Option[Sig[B]]], Signal[Option[B]]]
Flatten a Signal[Option[Signal[B]\]\] into a Signal[Option[B]\] where the new Signal updates whenever any of the inner or the outer signal updates
Flatten a Signal[Option[Signal[B]\]\] into a Signal[Option[B]\] where the new Signal updates whenever any of the inner or the outer signal updates
- Definition Classes
- FlattenApi
-
implicit
def
flattenImplicitForsignal[B](implicit ticket: CreationTicket): Flatten[Signal[Signal[B]], Signal[B]]
Flatten a Signal[Signal[B]\] into a Signal[B] that changes whenever the outer or inner signal changes.
Flatten a Signal[Signal[B]\] into a Signal[B] that changes whenever the outer or inner signal changes.
- Definition Classes
- FlattenApi
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- implicit def implicitScheduler: Scheduler
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- RescalaInterface → AnyRef → Any
-
def
transaction[R](initialWrites: ReSource*)(admissionPhase: (AdmissionTicket) ⇒ R): R
Executes a transaction.
Executes a transaction.
- R
Result type of the admission function
- initialWrites
All inputs that might be changed by the transaction
- admissionPhase
An admission function that may rescala.operator.Sources.Evt.admit / rescala.operator.Sources.Var.admit arbitrary input changes that will be applied as an atomic transaction at the end.
- returns
Result of the admission function
transaction(a, b){ implicit at => a.set(5); b.set(1); at.now(a) }
Example: -
def
transactionWithWrapup[I, R](initialWrites: ReSource*)(admissionPhase: (AdmissionTicket) ⇒ I)(wrapUpPhase: (I, AccessTicket) ⇒ R): R
Executes a transaction with WrapUpPhase.
Executes a transaction with WrapUpPhase.
- See also
transaction
-
def
traversableOfAllOccuringEventValues[B, T[U] <: TraversableLike[U, T[U]], Evnt[A1] <: Event[A1]](implicit ticket: CreationTicket, cbf: CanBuildFrom[T[_], Option[B], T[Option[B]]]): Flatten[Signal[T[Evnt[B]]], Event[T[Option[B]]]]
Flatten a Signal[Traversable[Event[B]\]\] into a Event[Traversable[Option[B]\]\] where the new Event fires whenever any of the inner events fire
Flatten a Signal[Traversable[Event[B]\]\] into a Event[Traversable[Option[B]\]\] where the new Event fires whenever any of the inner events fire
- Definition Classes
- FlattenCollectionCompat
-
implicit
def
traversableSignals[B, T[U] <: TraversableLike[U, T[U]], Sig[A1] <: Signal[A1]](implicit ticket: CreationTicket, cbf: CanBuildFrom[T[_], B, T[B]]): Flatten[Signal[T[Sig[B]]], Signal[T[B]]]
Flatten a Signal[Traversable[Signal[B]\]\] into a Signal[Traversable[B]\] where the new Signal updates whenever any of the inner or the outer signal updates
Flatten a Signal[Traversable[Signal[B]\]\] into a Signal[Traversable[B]\] where the new Signal updates whenever any of the inner or the outer signal updates
- Definition Classes
- FlattenCollectionCompat
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
object
Events
- Definition Classes
- EventBundle
-
object
Observe
- Definition Classes
- Observing
-
object
Signals
Functions to construct signals, you probably want to use signal expressions in rescala.interface.RescalaInterface.Signal for a nicer API.
Functions to construct signals, you probably want to use signal expressions in rescala.interface.RescalaInterface.Signal for a nicer API.
- Definition Classes
- SignalBundle
-
object
Var
Creates new Vars
Inherited from SignalCompatBundle
Inherited from Observing
Inherited from DefaultImplementations
Inherited from Sources
Inherited from FlattenApi
Inherited from FlattenCollectionCompat
Inherited from SignalBundle
Inherited from EventBundle
Inherited from EventCompatBundle
Inherited from InterpBundle
Inherited from Core
Inherited from AnyRef
Inherited from Any
Create new reactives
Update multiple reactives
Advanced functions used when extending REScala
Methods and type aliases for advanced usages, these are most relevant to abstract over multiple scheduler implementations.