trait BaseObservable[+Self[+_] <: Observable[_], +A] extends Source[A] with Named

This trait represents a reactive value that can be subscribed to.

It has only one direct subtype, Observable, which in turn has two direct subtypes, EventStream and Signal.

BaseObservable is the same as Observable, it just lives in a separate trait for technical reasons (the Self type param).

All Observables are lazy. An Observable starts when it gets its first observer (internal or external), and stops when it loses its last observer (again, internal or external).

Basic idea: Lazy Observable only holds references to those children that have any observers (either directly on themselves, or on any of their descendants). What this achieves: - Stream only propagates its value to children that (directly or not) have observers - Stream calculates its value only once regardless of how many observers / children it has) (so, all streams are "hot" observables) - Stream doesn't hold references to Streams that no one observes, allowing those Streams to be garbage collected if they are otherwise unreachable (which they should become when their subscriptions are killed by their owners)

Linear Supertypes
Named, Source[A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BaseObservable
  2. Named
  3. Source
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def addExternalObserver(observer: Observer[A], owner: Owner): Subscription
    Attributes
    protected[this]
  2. abstract def addInternalObserver(observer: InternalObserver[A]): Unit

    Child observable should call this method on its parents when it is started.

    Child observable should call this method on its parents when it is started. This observable calls onStart if this action has given it its first observer (internal or external).

    Attributes
    protected[airstream]
  3. abstract def addObserver(observer: Observer[A])(implicit owner: Owner): Subscription

    Subscribe an external observer to this observable

  4. abstract def debugWith(debugger: Debugger[A]): Self[A]

    Create a new observable that listens to this one and has a debugger attached.

    Create a new observable that listens to this one and has a debugger attached.

    Use the resulting observable in place of the original observable in your code. See docs for details.

    There are more convenient methods available implicitly from DebuggableObservable and DebuggableSignal, such as debugLog(), debugSpyEvents(), etc.

  5. abstract def map[B](project: (A) => B): Self[B]

    project

    Note: guarded against exceptions

  6. abstract def numAllObservers: Int

    Total number of internal and external observers

    Total number of internal and external observers

    Attributes
    protected
  7. abstract def recover[B >: A](pf: PartialFunction[Throwable, Option[B]]): Self[B]

    pf

    Note: guarded against exceptions

  8. abstract def recoverToTry: Self[Try[A]]

    Convert this to an observable that emits Failure(err) instead of erroring

  9. abstract def removeExternalObserverNow(observer: Observer[A]): Unit
    Attributes
    protected[airstream]
  10. abstract def removeInternalObserverNow(observer: InternalObserver[A]): Unit

    Child observable should call Transaction.removeInternalObserver(parent, childInternalObserver) when it is stopped.

    Child observable should call Transaction.removeInternalObserver(parent, childInternalObserver) when it is stopped. This observable calls onStop if this action has removed its last observer (internal or external).

    Attributes
    protected[airstream]
  11. abstract def toObservable: Observable[A]
    Definition Classes
    Source
  12. abstract val topoRank: Int

    Note: Use Protected.topoRank(observable) to read another observable's topoRank if needed

    Note: Use Protected.topoRank(observable) to read another observable's topoRank if needed

    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. def defaultDisplayName: String

    This is the method that subclasses override to preserve the user's ability to set custom display names.

    This is the method that subclasses override to preserve the user's ability to set custom display names.

    Attributes
    protected
    Definition Classes
    Named
  7. final def displayName: String
    Definition Classes
    Named
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. def flatMap[B, Inner[_], Output[+_] <: Observable[_]](compose: (A) => Inner[B])(implicit strategy: FlattenStrategy[Self, Inner, Output]): Output[B]

    compose

    Note: guarded against exceptions

    Annotations
    @inline()
  11. def foreach(onNext: (A) => Unit)(implicit owner: Owner): Subscription

    Create an external observer from a function and subscribe it to this observable.

    Create an external observer from a function and subscribe it to this observable.

    Note: since you won't have a reference to the observer, you will need to call Subscription.kill() to unsubscribe

  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. def isStarted: Boolean
    Attributes
    protected
  16. def mapTo[B](value: => B): Self[B]

    value is passed by name, so it will be evaluated whenever the Observable fires.

    value is passed by name, so it will be evaluated whenever the Observable fires. Use it to sample mutable values (e.g. myInput.ref.value in Laminar).

    See also: mapToStrict

    value

    Note: guarded against exceptions

  17. def mapToStrict[B](value: B): Self[B]

    value is evaluated strictly, only once, when this method is called.

    value is evaluated strictly, only once, when this method is called.

    See also: mapTo

  18. val maybeDisplayName: UndefOr[String]

    This name should identify the instance (observable or observer) uniquely enough for your purposes.

    This name should identify the instance (observable or observer) uniquely enough for your purposes. You can read / write it to simplify debugging. Airstream uses this in debugLog* methods. In the future, we will expand on this. #TODO[Debug] We don't use this to its full potential yet.

    Attributes
    protected[this]
    Definition Classes
    Named
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  22. def onAddedExternalObserver(observer: Observer[A]): Unit
    Attributes
    protected[this]
  23. def onStart(): Unit

    This method is fired when this observable starts working (listening for parent events and/or firing its own events), that is, when it gets its first Observer (internal or external).

    This method is fired when this observable starts working (listening for parent events and/or firing its own events), that is, when it gets its first Observer (internal or external).

    onStart can potentially be called multiple times, the second time being after it has stopped (see onStop).

    Attributes
    protected
  24. def onStop(): Unit

    This method is fired when this observable stops working (listening for parent events and/or firing its own events), that is, when it loses its last Observer (internal or external).

    This method is fired when this observable stops working (listening for parent events and/or firing its own events), that is, when it loses its last Observer (internal or external).

    onStop can potentially be called multiple times, the second time being after it has started again (see onStart).

    Attributes
    protected
  25. implicit def protectedAccessEvidence: Protected
    Attributes
    protected
    Annotations
    @inline()
  26. def recoverIgnoreErrors: Self[A]
  27. def setDisplayName(name: String): BaseObservable.this.type

    Set the display name for this instance (observable or observer).

    Set the display name for this instance (observable or observer). - This method modifies the instance and returns this. It does not create a new instance. - New name you set will override the previous name, if any. This might change in the future. For the sake of sanity, don't call this more than once for the same instance. - If display name is set, toString will output it instead of the standard type@hashcode string

    Definition Classes
    Named
  28. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  29. def toSignalIfStream[B >: A](ifStream: (EventStream[A]) => Signal[B]): Signal[B]
  30. def toStreamIfSignal[B >: A](ifSignal: (Signal[A]) => EventStream[B]): EventStream[B]
  31. final def toString(): String

    Override defaultDisplayName instead of this, if you need to.

    Override defaultDisplayName instead of this, if you need to.

    Definition Classes
    Named → AnyRef → Any
  32. def toWeakSignal: Signal[Option[A]]

    Convert this observable to a signal of Option[A].

    Convert this observable to a signal of Option[A]. If it is a stream, set initial value to None.

  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  35. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Named

Inherited from Source[A]

Inherited from AnyRef

Inherited from Any

Ungrouped