Class/Object

monix.reactive.observers

ConnectableSubscriber

Related Docs: object ConnectableSubscriber | package observers

Permalink

final class ConnectableSubscriber[-T] extends Subscriber[T]

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

Example:

val out = ConnectableSubscriber(subscriber)

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

// schedule event "a" to be emitted first
out.pushFirst("a")
// schedule event "b" to be emitted second
out.pushFirst("b")

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

Example of an observer ended in error:

val out = ConnectableSubscriber(subscriber)

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

out.pushFirst("a") // event "a" to be emitted first
out.pushFirst("b") // event "b" to be emitted second

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

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

// NOTE: that onNext("c") never happens
Self Type
ConnectableSubscriber[T]
Source
ConnectableSubscriber.scala
Linear Supertypes
Subscriber[T], Observer[T], Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ConnectableSubscriber
  2. Subscriber
  3. Observer
  4. Serializable
  5. Serializable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def connect(): CancelableFuture[Ack]

    Permalink

    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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  16. def onComplete(): Unit

    Permalink

    The Subscriber.onComplete method that pushes the complete event to the underlying observer.

    The Subscriber.onComplete method that pushes the complete event to the underlying observer.

    It will wait for connect to happen and the queue of scheduled events to be drained.

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

    Permalink

    The Subscriber.onError method that pushes an error event to the underlying observer.

    The Subscriber.onError method that pushes an error event to the underlying observer.

    It will wait for connect to happen and the queue of scheduled events to be drained.

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

    Permalink

    The Subscriber.onNext method that pushes events to the underlying subscriber.

    The Subscriber.onNext method that pushes events to the underlying subscriber.

    It will back-pressure by means of its Future[Ack] result until connect happens and the underlying queue of scheduled events have been drained.

    Definition Classes
    ConnectableSubscriberObserver
  19. def pushComplete(): Unit

    Permalink

    Schedule a complete event when connect happens, but before any elements scheduled with pushFirst or pushFirstAll.

    Schedule a complete event when connect happens, but before any elements scheduled with pushFirst or pushFirstAll.

    After pushComplete no more pushFirst or onNext events are accepted.

  20. def pushError(ex: Throwable): Unit

    Permalink

    Schedule an error event when connect happens, but before any elements scheduled with pushFirst or pushFirstAll.

    Schedule an error event when connect happens, but before any elements scheduled with pushFirst or pushFirstAll.

    After pushError no more pushFirst or onNext events are accepted.

  21. def pushFirst(elem: T): Unit

    Permalink

    Schedule one element to be pushed to the underlying subscriber when connect happens.

    Schedule one element to be pushed to the underlying subscriber when connect happens.

    The given elements are appended to a queue that will be drained on connect. Afterwards no more elements are allowed to be pushed in the queue.

    These elements are streamed before any elements that will eventually get streamed with onNext, because of the applied back-pressure from onNext.

  22. def pushFirstAll[U <: T](xs: TraversableOnce[U]): Unit

    Permalink

    Schedule elements to be pushed to the underlying subscriber when connect happens.

    Schedule elements to be pushed to the underlying subscriber when connect happens.

    The given elements are appended to a queue that will be drained on connect. Afterwards no more elements are allowed to be pushed in the queue.

    These elements are streamed before any elements that will eventually get streamed with onNext, because of the applied back-pressure from onNext.

  23. implicit val scheduler: Scheduler

    Permalink
    Definition Classes
    ConnectableSubscriberSubscriber
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  25. def toString(): String

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Subscriber[T]

Inherited from Observer[T]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped