trait Subscription extends org.reactivestreams.Subscription with Cancelable
The Subscription
represents a cross between the
Monix Cancelable and
org.reactivestreams.Subcription
.
Represents a one-to-one lifecycle of a Subscriber
subscribing to a Publisher
and mirrors the Subscription
interface from the
Reactive Streams specification.
It can be used only once by a single Subscriber
. It is used
for both signaling demand for data and for canceling demand (and allow
resource cleanup).
- Source
- Subscription.scala
- Alphabetic
- By Inheritance
- Subscription
- Cancelable
- Serializable
- Subscription
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def cancel(): Unit
Cancels the unit of work represented by this reference.
Cancels the unit of work represented by this reference.
Guaranteed idempotency - calling it multiple times should have the same side-effect as calling it only once. Implementations of this method should also be thread-safe.
- Definition Classes
- Cancelable
- abstract def request(n: Long): Unit
No events will be sent by a
Publisher
until demand is signaled via this method.No events will be sent by a
Publisher
until demand is signaled via this method.It can be called however often and whenever needed. Whatever has been requested can be sent by the
Publisher
so only signal demand for what can be safely handled.A
Publisher
can send less than is requested if the stream ends but then must emit eitheronError
oronComplete
.The
Subscriber
MAY call this method synchronously in the implementation of itsonSubscribe
/onNext
methods, therefore the effects of this function must be asynchronous, otherwise it could lead to a stack overflow.- n
signals demand for the number of
onNext
events that theSubscriber
wants, if positive, then thePublisher
is bound by contract to not send more than this number ofonNext
events and if negative, then this signals to thePublisher
that it may send an infinite number of events, until the subscription gets cancelled or the stream is complete.
- Definition Classes
- Subscription → Subscription
Concrete Value Members
- 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 asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- 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()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomic
types, as alternative tojava.util.concurrent.atomic
monix.catnap exposes pure abstractions built on top of the Cats-Effect type classes:
monix.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observable
pattern:Observable
implementationsmonix.tail exposes Iterant for purely functional pull based streaming:
Batch
andBatchCursor
, the alternatives to Scala'sIterable
andIterator
respectively that we are using within Iterant's encodingYou can control evaluation with type you choose - be it Task, Coeval, cats.effect.IO or your own as long as you provide correct cats-effect or cats typeclass instance.