Class ObservableDistinct.DistinctObserver<T,K>
- java.lang.Object
-
- io.reactivex.rxjava3.internal.observers.BasicFuseableObserver<T,T>
-
- io.reactivex.rxjava3.internal.operators.observable.ObservableDistinct.DistinctObserver<T,K>
-
- All Implemented Interfaces:
Observer<T>,Disposable,QueueDisposable<T>,QueueFuseable<T>,SimpleQueue<T>
- Enclosing class:
- ObservableDistinct<T,K>
static final class ObservableDistinct.DistinctObserver<T,K> extends BasicFuseableObserver<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.observers.BasicFuseableObserver
done, downstream, qd, sourceMode, upstream
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Removes all enqueued items from this queue.voidonComplete()Notifies theObserverthat theObservablehas finished sending push-based notifications.voidonError(java.lang.Throwable e)Notifies theObserverthat theObservablehas experienced an error condition.voidonNext(T value)Provides theObserverwith a new item to observe.Tpoll()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 io.reactivex.rxjava3.internal.observers.BasicFuseableObserver
afterDownstream, beforeDownstream, dispose, fail, isDisposed, isEmpty, offer, offer, onSubscribe, transitiveBoundaryFusion
-
-
-
-
Method Detail
-
onNext
public void onNext(T value)
Description copied from interface:ObserverProvides theObserverwith a new item to observe.The
Observablemay call this method 0 or more times.The
Observablewill not call this method again after it calls eitherObserver.onComplete()orObserver.onError(java.lang.Throwable).- Parameters:
value- the item emitted by the Observable
-
onError
public void onError(java.lang.Throwable e)
Description copied from interface:ObserverNotifies theObserverthat theObservablehas experienced an error condition.If the
Observablecalls this method, it will not thereafter callObserver.onNext(T)orObserver.onComplete().
-
onComplete
public void onComplete()
Description copied from interface:ObserverNotifies theObserverthat theObservablehas finished sending push-based notifications.The
Observablewill not call this method if it callsObserver.onError(java.lang.Throwable).- Specified by:
onCompletein interfaceObserver<T>- Overrides:
onCompletein classBasicFuseableObserver<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
@Nullable public T poll() throws java.lang.Throwable
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:
java.lang.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 classBasicFuseableObserver<T,T>
-
-