Top Description Fields Constructors Methods
io.reactivex.internal.subscribers

public abstract Class DeferredScalarSubscriber<T, R>

extends DeferredScalarSubscription<R>
implements FlowableSubscriber<T>
Class Inheritance
All Implemented Interfaces
io.reactivex.FlowableSubscriber, org.reactivestreams.Subscriber
Known Direct Subclasses
io.reactivex.internal.operators.parallel.ParallelCollect.ParallelCollectSubscriber, io.reactivex.internal.operators.parallel.ParallelReduce.ParallelReduceSubscriber
Type Parameters
<T>
the input value type
<R>
the output value type
Imports
org.reactivestreams.*, io.reactivex.FlowableSubscriber, io.reactivex.internal.subscriptions.*

A subscriber, extending a DeferredScalarSubscription, that is unbounded-in and can generate 0 or 1 resulting value.

Field Summary

Modifier and TypeField and Description
protected boolean
hasValue

Can indicate if there was at least on onNext call.

private static final long
protected Subscription
upstream

The upstream subscription.

Inherited from io.reactivex.internal.subscriptions.DeferredScalarSubscription:
downstreamvalue

Constructor Summary

AccessConstructor and Description
public
DeferredScalarSubscriber(Subscriber<? super R>
the downstream subscriber, not null (not verified)
downstream
)

Creates a DeferredScalarSubscriber instance and wraps a downstream Subscriber.

Method Summary

Modifier and TypeMethod and Description
public void
cancel()

Overrides io.reactivex.internal.subscriptions.DeferredScalarSubscription.cancel.

Implements org.reactivestreams.Subscription.cancel.

Request the Publisher to stop sending data and clean up resources.
public void
onComplete()

Implements org.reactivestreams.Subscriber.onComplete.

Successful terminal state.
public void
onError(Throwable
the throwable signaled
t
)

Implements org.reactivestreams.Subscriber.onError.

Failed terminal state.
public void
onSubscribe(Subscription
the Subscription that allows requesting data via Subscription#request(long)
s
)

Implements io.reactivex.FlowableSubscriber.onSubscribe.

Implementors of this method should make sure everything that needs to be visible in onNext(Object) is established before calling Subscription#request(long).
Inherited from io.reactivex.internal.subscriptions.DeferredScalarSubscription:
clearcompleteisCancelledisEmptypollrequestrequestFusiontryCancel

Field Detail

hasValueback to summary
protected boolean hasValue

Can indicate if there was at least on onNext call.

serialVersionUIDback to summary
private static final long serialVersionUID

Hides io.reactivex.internal.subscriptions.DeferredScalarSubscription.serialVersionUID.

upstreamback to summary
protected Subscription upstream

The upstream subscription.

Constructor Detail

DeferredScalarSubscriberback to summary
public DeferredScalarSubscriber(Subscriber<? super R> downstream)

Creates a DeferredScalarSubscriber instance and wraps a downstream Subscriber.

Parameters
downstream:Subscriber<? super R>

the downstream subscriber, not null (not verified)

Method Detail

cancelback to summary
public void cancel()

Overrides io.reactivex.internal.subscriptions.DeferredScalarSubscription.cancel.

Implements org.reactivestreams.Subscription.cancel.

Doc from org.reactivestreams.Subscription.cancel.

Request the Publisher to stop sending data and clean up resources.

Data may still be sent to meet previously signalled demand after calling cancel.

Annotations
@Override
onCompleteback to summary
public void onComplete()

Implements org.reactivestreams.Subscriber.onComplete.

Doc from org.reactivestreams.Subscriber.onComplete.

Successful terminal state.

No further events will be sent even if Subscription#request(long) is invoked again.

Annotations
@Override
onErrorback to summary
public void onError(Throwable t)

Implements org.reactivestreams.Subscriber.onError.

Doc from org.reactivestreams.Subscriber.onError.

Failed terminal state.

No further events will be sent even if Subscription#request(long) is invoked again.

Parameters
t:Throwable

the throwable signaled

Annotations
@Override
onSubscribeback to summary
public void onSubscribe(Subscription s)

Implements io.reactivex.FlowableSubscriber.onSubscribe.

Doc from io.reactivex.FlowableSubscriber.onSubscribe.

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

No data will start flowing until Subscription#request(long) is invoked.

It is the responsibility of this Subscriber instance to call Subscription#request(long) whenever more data is wanted.

The Publisher will send notifications only in response to Subscription#request(long).

Parameters
s:Subscription

Doc from org.reactivestreams.Subscriber.onSubscribe.

the Subscription that allows requesting data via Subscription#request(long)

Annotations
@Override