monifu.reactive.observers

ConnectableObserver

final class ConnectableObserver[-T] extends Channel[T] with Observer[T]

Wraps an Observer into an implementation that abstains from emitting items until the call to connect() happens. Prior to connect() it's also a Channel into which you can enqueue events for delivery once connect() happens, but before any items emitted by onNext / onComplete and onError.

Example:

val obs = ConnectableObserver(observer)

// schedule onNext event, after connect()
obs.onNext("c")

// schedule event "a" to be emitted first
obs.pushNext("a")
// schedule event "b" to be emitted second
obs.pushNext("b")

// underlying observer now gets events "a", "b", "c" in order
obs.connect()

Example of an observer ended in error:

val obs = ConnectableObserver(observer)

// schedule onNext event, after connect()
obs.onNext("c")

obs.pushNext("a") // event "a" to be emitted first
obs.pushNext("b") // event "b" to be emitted first

// schedule an onError sent downstream, once connect()
// happens, but after "a" and "b"
obs.pushError(new RuntimeException())

// underlying observer receives ...
// onNext("a") -> onNext("b") -> onError(RuntimeException)
obs.connect()

// NOTE: that onNext("c") never happens
Self Type
ConnectableObserver[T]
Linear Supertypes
Observer[T], Channel[T], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ConnectableObserver
  2. Observer
  3. Channel
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ConnectableObserver(underlying: Observer[T])(implicit context: ExecutionContext)

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[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def connect(): Unit

    Connects the underling observer to the upstream publisher.

    Connects the underling observer to the upstream publisher.

    This function should be idempotent. Calling it multiple times should have the same effect as calling it once.

  7. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  11. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  14. final def notify(): Unit

    Definition Classes
    AnyRef
  15. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  16. def onComplete(): Unit

    Definition Classes
    ConnectableObserverObserver
  17. def onError(ex: Throwable): Unit

    Definition Classes
    ConnectableObserverObserver
  18. def onNext(elem: T): Future[Ack]

    Definition Classes
    ConnectableObserverObserver
  19. def pushComplete(): Unit

    Emit an item

    Emit an item

    Definition Classes
    ConnectableObserverChannel
  20. def pushError(ex: Throwable): Unit

    Ends the stream with an error.

    Ends the stream with an error.

    Definition Classes
    ConnectableObserverChannel
  21. def pushNext(elems: T*): Unit

    Emit an item immediately to the underlying observer, after previous pushNext() events, but before any events emitted through onNext.

    Emit an item immediately to the underlying observer, after previous pushNext() events, but before any events emitted through onNext.

    Definition Classes
    ConnectableObserverChannel
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  23. def toString(): String

    Definition Classes
    AnyRef → Any
  24. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Observer[T]

Inherited from Channel[T]

Inherited from AnyRef

Inherited from Any

Ungrouped