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>
static final class FlowableDistinct.DistinctSubscriber<T,K> extends BasicFuseableSubscriber<T,T>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.Collection<? super K>
collection
(package private) Function<? super T,K>
keySelector
-
Fields inherited from class io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber
done, downstream, qs, sourceMode, upstream
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Removes all enqueued items from this queue.void
onComplete()
void
onError(java.lang.Throwable e)
void
onNext(T value)
T
poll()
Tries to dequeue a value (non-null) or returns null if the queue is empty.int
requestFusion(int mode)
Request a fusion mode from the upstream.-
Methods inherited from class io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber
afterDownstream, beforeDownstream, cancel, fail, isEmpty, offer, offer, onSubscribe, request, transitiveBoundaryFusion
-
-
-
-
Method Detail
-
onNext
public void onNext(T value)
-
onError
public void onError(java.lang.Throwable e)
- Specified by:
onError
in interfaceorg.reactivestreams.Subscriber<T>
- Overrides:
onError
in classBasicFuseableSubscriber<T,T>
-
onComplete
public void onComplete()
- Specified by:
onComplete
in interfaceorg.reactivestreams.Subscriber<T>
- Overrides:
onComplete
in classBasicFuseableSubscriber<T,T>
-
requestFusion
public int requestFusion(int mode)
Description copied from interface:QueueFuseable
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
- the requested fusion mode, allowed values areQueueFuseable.SYNC
,QueueFuseable.ASYNC
,QueueFuseable.ANY
combined withQueueFuseable.BOUNDARY
(e.g.,requestFusion(SYNC | BOUNDARY)
).- Returns:
- the established fusion mode:
QueueFuseable.NONE
,QueueFuseable.SYNC
,QueueFuseable.ASYNC
.
-
poll
@Nullable public T poll() throws java.lang.Throwable
Description copied from interface:SimpleQueue
Tries 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:
java.lang.Throwable
- if some pre-processing of the dequeued item (usually through fused functions) throws.
-
clear
public void clear()
Description copied from interface:SimpleQueue
Removes all enqueued items from this queue.- Specified by:
clear
in interfaceSimpleQueue<T>
- Overrides:
clear
in classBasicFuseableSubscriber<T,T>
-
-