Top Description Inners Fields Constructors Methods
io.reactivex.internal.operators.parallel

public final Class ParallelReduce<T, R>

extends ParallelFlowable<R>
Class Inheritance
Type Parameters
<T>
the input value type
<R>
the result value type
Imports
java.util.concurrent.Callable, org.reactivestreams.*, io.reactivex.exceptions.Exceptions, io.reactivex.functions.BiFunction, io.reactivex.internal.functions.ObjectHelper, io.reactivex.internal.subscribers.DeferredScalarSubscriber, io.reactivex.internal.subscriptions.*, io.reactivex.parallel.ParallelFlowable, io.reactivex.plugins.RxJavaPlugins

Reduce the sequence of values in each 'rail' to a single value.

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class

Field Summary

Modifier and TypeField and Description
pack-priv final Callable<R>
pack-priv final BiFunction<R, ? super T, R>
pack-priv final ParallelFlowable<? extends T>

Constructor Summary

AccessConstructor and Description
public
ParallelReduce(ParallelFlowable<? extends T> source, Callable<R> initialSupplier, BiFunction<R, ? super T, R> reducer)

Method Summary

Modifier and TypeMethod and Description
public int
parallelism()

Implements abstract io.reactivex.parallel.ParallelFlowable.parallelism.

Returns the number of expected parallel Subscribers.
pack-priv void
reportError(Subscriber<?>[] subscribers, Throwable ex)

public void
subscribe(Subscriber<? super R>[]
the subscribers array to run in parallel, the number of items must be equal to the parallelism level of this ParallelFlowable
subscribers
)

Implements abstract io.reactivex.parallel.ParallelFlowable.subscribe.

Subscribes an array of Subscribers to this ParallelFlowable and triggers the execution chain for all 'rails'.
Inherited from io.reactivex.parallel.ParallelFlowable:
ascollectcomposeconcatMapconcatMapconcatMapDelayErrorconcatMapDelayErrordoAfterNextdoAfterTerminateddoOnCanceldoOnCompletedoOnErrordoOnNextdoOnNextdoOnNextdoOnRequestdoOnSubscribefilterfilterfilterflatMapflatMapflatMapflatMapfromfromfromfromArraymapmapmapreducereducerunOnrunOnsequentialsequentialsequentialDelayErrorsequentialDelayErrorsortedsortedtotoSortedListtoSortedListvalidate

Field Detail

initialSupplierback to summary
pack-priv final Callable<R> initialSupplier
reducerback to summary
pack-priv final BiFunction<R, ? super T, R> reducer
sourceback to summary
pack-priv final ParallelFlowable<? extends T> source

Constructor Detail

ParallelReduceback to summary
public ParallelReduce(ParallelFlowable<? extends T> source, Callable<R> initialSupplier, BiFunction<R, ? super T, R> reducer)

Method Detail

parallelismback to summary
public int parallelism()

Implements abstract io.reactivex.parallel.ParallelFlowable.parallelism.

Doc from io.reactivex.parallel.ParallelFlowable.parallelism.

Returns the number of expected parallel Subscribers.

Returns:int

the number of expected parallel Subscribers

Annotations
@Override
reportErrorback to summary
pack-priv void reportError(Subscriber<?>[] subscribers, Throwable ex)
subscribeback to summary
public void subscribe(Subscriber<? super R>[] subscribers)

Implements abstract io.reactivex.parallel.ParallelFlowable.subscribe.

Doc from io.reactivex.parallel.ParallelFlowable.subscribe.

Subscribes an array of Subscribers to this ParallelFlowable and triggers the execution chain for all 'rails'.

Parameters
subscribers:Subscriber<? super R>[]

the subscribers array to run in parallel, the number of items must be equal to the parallelism level of this ParallelFlowable

Annotations
@Override
io.reactivex.internal.operators.parallel back to summary

pack-priv final Class ParallelReduce.ParallelReduceSubscriber<T, R>

extends DeferredScalarSubscriber<T, R>
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv R
pack-priv boolean
pack-priv final BiFunction<R, ? super T, R>
private static final long
Inherited from io.reactivex.internal.subscribers.DeferredScalarSubscriber:
hasValueupstream

Constructor Summary

AccessConstructor and Description
pack-priv
ParallelReduceSubscriber(Subscriber<? super R> subscriber, R initialValue, BiFunction<R, ? super T, R> reducer)

Method Summary

Modifier and TypeMethod and Description
public void
cancel()

Overrides io.reactivex.internal.subscribers.DeferredScalarSubscriber.cancel.

Implements org.reactivestreams.Subscription.cancel.

Request the Publisher to stop sending data and clean up resources.
public void
public void
public void
onNext(T
the element signaled
t
)

Implements org.reactivestreams.Subscriber.onNext.

Data notification sent by the Publisher in response to requests to Subscription#request(long).
public void
onSubscribe(Subscription
the Subscription that allows requesting data via Subscription#request(long)
s
)

Overrides io.reactivex.internal.subscribers.DeferredScalarSubscriber.onSubscribe.

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).

Field Detail

accumulatorback to summary
pack-priv R accumulator
doneback to summary
pack-priv boolean done
reducerback to summary
pack-priv final BiFunction<R, ? super T, R> reducer
serialVersionUIDback to summary
private static final long serialVersionUID

Hides io.reactivex.internal.subscribers.DeferredScalarSubscriber.serialVersionUID.

Constructor Detail

ParallelReduceSubscriberback to summary
pack-priv ParallelReduceSubscriber(Subscriber<? super R> subscriber, R initialValue, BiFunction<R, ? super T, R> reducer)

Method Detail

cancelback to summary
public void cancel()

Overrides io.reactivex.internal.subscribers.DeferredScalarSubscriber.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()

Overrides io.reactivex.internal.subscribers.DeferredScalarSubscriber.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)

Overrides io.reactivex.internal.subscribers.DeferredScalarSubscriber.onError.

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
onNextback to summary
public void onNext(T t)

Implements org.reactivestreams.Subscriber.onNext.

Doc from org.reactivestreams.Subscriber.onNext.

Data notification sent by the Publisher in response to requests to Subscription#request(long).

Parameters
t:T

the element signaled

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

Overrides io.reactivex.internal.subscribers.DeferredScalarSubscriber.onSubscribe.

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