Class FlowableDistinct.DistinctSubscriber<T,K>
java.lang.Object
io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber<T,T>
io.reactivex.rxjava3.internal.operators.flowable.FlowableDistinct.DistinctSubscriber<T,K>
- All Implemented Interfaces:
FlowableSubscriber<T>, QueueFuseable<T>, QueueSubscription<T>, SimpleQueue<T>, org.reactivestreams.Subscriber<T>, org.reactivestreams.Subscription
- Enclosing class:
FlowableDistinct<T,K>
-
Field Summary
FieldsFields inherited from class BasicFuseableSubscriber
done, downstream, qs, sourceMode, upstream -
Constructor Summary
ConstructorsConstructorDescriptionDistinctSubscriber(org.reactivestreams.Subscriber<? super T> actual, Function<? super T, K> keySelector, Collection<? super K> collection) -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Removes all enqueued items from this queue.voidvoidvoidpoll()Tries to dequeue a value (non-null) or returns null if the queue is empty.intrequestFusion(int mode) Request a fusion mode from the upstream.Methods inherited from class BasicFuseableSubscriber
afterDownstream, beforeDownstream, cancel, fail, isEmpty, offer, offer, onSubscribe, request, transitiveBoundaryFusion
-
Field Details
-
collection
-
keySelector
-
-
Constructor Details
-
DistinctSubscriber
-
-
Method Details
-
onNext
-
onError
-
onComplete
public void onComplete()- Specified by:
onCompletein interfaceorg.reactivestreams.Subscriber<T>- Overrides:
onCompletein classBasicFuseableSubscriber<T,T>
-
requestFusion
public int requestFusion(int mode) Description copied from interface:QueueFuseableRequest a fusion mode from the upstream.This should be called before
onSubscribereturns.Calling this method multiple times or after
onSubscribefinished is not allowed and may result in undefined behavior.- Parameters:
mode- the requested fusion mode, allowed values areQueueFuseable.SYNC,QueueFuseable.ASYNC,QueueFuseable.ANYcombined withQueueFuseable.BOUNDARY(e.g.,requestFusion(SYNC | BOUNDARY)).- Returns:
- the established fusion mode:
QueueFuseable.NONE,QueueFuseable.SYNC,QueueFuseable.ASYNC.
-
poll
Description copied from interface:SimpleQueueTries to dequeue a value (non-null) or returns null if the queue is empty.If the producer uses
SimpleQueue.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:
- the item or null to indicate an empty queue
- Throws:
Throwable- if some pre-processing of the dequeued item (usually through fused functions) throws.
-
clear
public void clear()Description copied from interface:SimpleQueueRemoves all enqueued items from this queue.- Specified by:
clearin interfaceSimpleQueue<T>- Overrides:
clearin classBasicFuseableSubscriber<T,T>
-