public abstract class

DefaultSubscriber

extends Object
implements FlowableSubscriber<T>
java.lang.Object
   ↳ io.reactivex.subscribers.DefaultSubscriber<T>

Class Overview

Abstract base implementation of a org.reactivestreams.Subscriber Subscriber with support for requesting via request(long), cancelling via via cancel() (both synchronously) and calls onStart() when the subscription happens.

All pre-implemented final methods are thread-safe.

The default onStart() requests Long.MAX_VALUE by default. Override the method to request a custom positive amount.

Note that calling request(long) from onStart() may trigger an immediate, asynchronous emission of data to onNext(Object). Make sure all initialization happens before the call to request() in onStart(). Calling request(long) inside onNext(Object) can happen at any time because by design, onNext calls from upstream are non-reentrant and non-overlapping.

Use the protected cancel() to cancel the sequence from within an onNext implementation.

Like all other consumers, DefaultSubscriber can be subscribed only once. Any subsequent attempt to subscribe it to a new source will yield an IllegalStateException with message "It is not allowed to subscribe with a(n) <class name> multiple times.".

Implementation of onStart(), onNext(Object), onError(Throwable) and onComplete() are not allowed to throw any unchecked exceptions. If for some reason this can't be avoided, use safeSubscribe(org.reactivestreams.Subscriber) instead of the standard subscribe() method.

Summary

Public Constructors
DefaultSubscriber()
Public Methods
final void onSubscribe(Subscription s)
Implementors of this method should make sure everything that needs to be visible in onNext(Object) is established before calling request(long).
Protected Methods
final void cancel()
Cancels the upstream's Subscription.
void onStart()
Called once the subscription has been set on this observer; override this to perform initialization or issue an initial request.
final void request(long n)
Requests from the upstream Subscription.
[Expand]
Inherited Methods
From class java.lang.Object
From interface io.reactivex.FlowableSubscriber
From interface org.reactivestreams.Subscriber

Public Constructors

public DefaultSubscriber ()

Public Methods

public final void onSubscribe (Subscription s)

Implementors of this method should make sure everything that needs to be visible in onNext(Object) is established before calling request(long). In practice this means no initialization should happen after the request() call and additional behavior is thread safe in respect to onNext.

Protected Methods

protected final void cancel ()

Cancels the upstream's Subscription.

protected void onStart ()

Called once the subscription has been set on this observer; override this to perform initialization or issue an initial request.

The default implementation requests MAX_VALUE.

protected final void request (long n)

Requests from the upstream Subscription.

Parameters
n the request amount, positive