Top Inners Fields Constructors Methods
io.reactivex.rxjava3.internal.operators.flowable

public final Class FlowableDistinct<T, K>

extends AbstractFlowableWithUpstream<T, T>
Class Inheritance
Imports
java.util.Collection, .Objects, org.reactivestreams.Subscriber, io.reactivex.rxjava3.annotations.Nullable, io.reactivex.rxjava3.core.Flowable, io.reactivex.rxjava3.exceptions.Exceptions, io.reactivex.rxjava3.functions.*, io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber, io.reactivex.rxjava3.internal.subscriptions.EmptySubscription, io.reactivex.rxjava3.internal.util.ExceptionHelper, io.reactivex.rxjava3.operators.QueueFuseable, io.reactivex.rxjava3.plugins.RxJavaPlugins

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class

Field Summary

Modifier and TypeField and Description
pack-priv final Supplier<? extends Collection<? super K>>
pack-priv final Function<? super T, K>
Inherited from io.reactivex.rxjava3.internal.operators.flowable.AbstractFlowableWithUpstream:
source

Constructor Summary

AccessConstructor and Description
public
FlowableDistinct(Flowable<T> source, Function<? super T, K> keySelector, Supplier<? extends Collection<? super K>> collectionSupplier)

Method Summary

Modifier and TypeMethod and Description
protected void
subscribeActual(Subscriber<? super T> subscriber)

Inherited from io.reactivex.rxjava3.internal.operators.flowable.AbstractFlowableWithUpstream:
source

Field Detail

collectionSupplierback to summary
pack-priv final Supplier<? extends Collection<? super K>> collectionSupplier
keySelectorback to summary
pack-priv final Function<? super T, K> keySelector

Constructor Detail

FlowableDistinctback to summary
public FlowableDistinct(Flowable<T> source, Function<? super T, K> keySelector, Supplier<? extends Collection<? super K>> collectionSupplier)

Method Detail

subscribeActualback to summary
protected void subscribeActual(Subscriber<? super T> subscriber)
Annotations
@Override
io.reactivex.rxjava3.internal.operators.flowable back to summary

pack-priv final Class FlowableDistinct.DistinctSubscriber<T, K>

extends BasicFuseableSubscriber<T, T>
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv final Collection<? super K>
pack-priv final Function<? super T, K>
Inherited from io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber:
donedownstreamqssourceModeupstream

Constructor Summary

AccessConstructor and Description
pack-priv
DistinctSubscriber(Subscriber<? super T> actual, Function<? super T, K> keySelector, Collection<? super K> collection)

Method Summary

Modifier and TypeMethod and Description
public void
public void
public void
public void
onNext(T
the element signaled
value
)

Implements org.reactivestreams.Subscriber.onNext.

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

Implements io.reactivex.rxjava3.operators.SimpleQueue.poll.

Tries to dequeue a value (non-null) or returns null if the queue is empty.
public int
requestFusion(int
the requested fusion mode, allowed values are SYNC, ASYNC, ANY combined with BOUNDARY (e.g., requestFusion(SYNC | BOUNDARY)).
mode
)

Implements io.reactivex.rxjava3.operators.QueueFuseable.requestFusion.

Request a fusion mode from the upstream.
Inherited from io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber:
afterDownstreambeforeDownstreamcancelfailisEmptyofferofferonSubscriberequesttransitiveBoundaryFusion

Field Detail

collectionback to summary
pack-priv final Collection<? super K> collection
keySelectorback to summary
pack-priv final Function<? super T, K> keySelector

Constructor Detail

DistinctSubscriberback to summary
pack-priv DistinctSubscriber(Subscriber<? super T> actual, Function<? super T, K> keySelector, Collection<? super K> collection)

Method Detail

clearback to summary
public void clear()

Overrides io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber.clear.

Implements io.reactivex.rxjava3.operators.SimpleQueue.clear.

Doc from io.reactivex.rxjava3.operators.SimpleQueue.clear.

Removes all enqueued items from this queue.

Annotations
@Override
onCompleteback to summary
public void onComplete()

Overrides io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber.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 e)

Overrides io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber.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
e:Throwable

the throwable signaled

Annotations
@Override
onNextback to summary
public void onNext(T value)

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
value:T

the element signaled

Annotations
@Override
pollback to summary
public T poll() throws Throwable

Implements io.reactivex.rxjava3.operators.SimpleQueue.poll.

Doc from io.reactivex.rxjava3.operators.SimpleQueue.poll.

Tries to dequeue a value (non-null) or returns null if the queue is empty.

If the producer uses offer(Object, Object) and when polling in pairs, if the first poll() returns a non-null item, the second poll() is guaranteed to return a non-null item as well.

Returns:T

the item or null to indicate an empty queue

Annotations
@Nullable
@Override
Exceptions
Throwable:
if some pre-processing of the dequeued item (usually through fused functions) throws.
requestFusionback to summary
public int requestFusion(int mode)

Implements io.reactivex.rxjava3.operators.QueueFuseable.requestFusion.

Doc from io.reactivex.rxjava3.operators.QueueFuseable.requestFusion.

Request a fusion mode from the upstream.

This should be called before onSubscribe returns.

Calling this method multiple times or after onSubscribe finished is not allowed and may result in undefined behavior.

Parameters
mode:int

the requested fusion mode, allowed values are SYNC, ASYNC, ANY combined with BOUNDARY (e.g., requestFusion(SYNC | BOUNDARY)).

Returns:int

the established fusion mode: NONE, SYNC, ASYNC.

Annotations
@Override