Class ObservableDistinct.DistinctObserver<T,K>
- All Implemented Interfaces:
Observer<T>
,Disposable
,QueueDisposable<T>
,QueueFuseable<T>
,SimpleQueue<T>
- Enclosing class:
ObservableDistinct<T,
K>
-
Field Summary
FieldsFields inherited from class io.reactivex.rxjava3.internal.observers.BasicFuseableObserver
done, downstream, qd, sourceMode, upstream
-
Constructor Summary
ConstructorsConstructorDescriptionDistinctObserver
(Observer<? super T> actual, Function<? super T, K> keySelector, Collection<? super K> collection) -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Removes all enqueued items from this queue.void
Notifies theObserver
that theObservable
has finished sending push-based notifications.void
Notifies theObserver
that theObservable
has experienced an error condition.void
Provides theObserver
with a new item to observe.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.observers.BasicFuseableObserver
afterDownstream, beforeDownstream, dispose, fail, isDisposed, isEmpty, offer, offer, onSubscribe, transitiveBoundaryFusion
-
Field Details
-
collection
-
keySelector
-
-
Constructor Details
-
DistinctObserver
-
-
Method Details
-
onNext
Description copied from interface:Observer
Provides theObserver
with a new item to observe.The
Observable
may call this method 0 or more times.The
Observable
will not call this method again after it calls eitherObserver.onComplete()
orObserver.onError(java.lang.Throwable)
.- Parameters:
value
- the item emitted by the Observable
-
onError
Description copied from interface:Observer
Notifies theObserver
that theObservable
has experienced an error condition.If the
Observable
calls this method, it will not thereafter callObserver.onNext(T)
orObserver.onComplete()
. -
onComplete
public void onComplete()Description copied from interface:Observer
Notifies theObserver
that theObservable
has finished sending push-based notifications.The
Observable
will not call this method if it callsObserver.onError(java.lang.Throwable)
.- Specified by:
onComplete
in interfaceObserver<T>
- Overrides:
onComplete
in classBasicFuseableObserver<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
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:
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 classBasicFuseableObserver<T,
T>
-