Package io.reactivex.rxjava3.observers
Class SerializedObserver<T>
- java.lang.Object
-
- io.reactivex.rxjava3.observers.SerializedObserver<T>
-
- Type Parameters:
T- the value type
- All Implemented Interfaces:
Observer<T>,Disposable
public final class SerializedObserver<T> extends java.lang.Object implements Observer<T>, Disposable
Serializes access to theObserver.onNext(Object),Observer.onError(Throwable)andObserver.onComplete()methods of anotherObserver.Note that
onSubscribe(Disposable)is not serialized in respect of the other methods so make sure theonSubscribe()is called with a non-nullDisposablebefore any of the other methods are called.The implementation assumes that the actual
Observer's methods don't throw.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) booleandelayError(package private) booleandone(package private) Observer<? super T>downstream(package private) booleanemitting(package private) AppendOnlyLinkedArrayList<java.lang.Object>queue(package private) static intQUEUE_LINK_SIZE(package private) Disposableupstream
-
Constructor Summary
Constructors Constructor Description SerializedObserver(@NonNull Observer<? super T> downstream)Construct aSerializedObserverby wrapping the given actualObserver.SerializedObserver(@NonNull Observer<? super T> actual, boolean delayError)Construct a SerializedObserver by wrapping the given actualObserverand optionally delaying the errors till all regular values have been emitted from the internal buffer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddispose()Dispose the resource, the operation should be idempotent.(package private) voidemitLoop()booleanisDisposed()Returns true if this resource has been disposed.voidonComplete()Notifies theObserverthat theObservablehas finished sending push-based notifications.voidonError(@NonNull java.lang.Throwable t)Notifies theObserverthat theObservablehas experienced an error condition.voidonNext(T t)Provides theObserverwith a new item to observe.voidonSubscribe(@NonNull Disposable d)Provides theObserverwith the means of cancelling (disposing) the connection (channel) with theObservablein both synchronous (from withinObserver.onNext(Object)) and asynchronous manner.
-
-
-
Field Detail
-
delayError
final boolean delayError
-
QUEUE_LINK_SIZE
static final int QUEUE_LINK_SIZE
- See Also:
- Constant Field Values
-
upstream
Disposable upstream
-
emitting
boolean emitting
-
queue
AppendOnlyLinkedArrayList<java.lang.Object> queue
-
done
volatile boolean done
-
-
Constructor Detail
-
SerializedObserver
public SerializedObserver(@NonNull @NonNull Observer<? super T> downstream)
Construct aSerializedObserverby wrapping the given actualObserver.- Parameters:
downstream- the actualObserver, notnull(not verified)
-
SerializedObserver
public SerializedObserver(@NonNull @NonNull Observer<? super T> actual, boolean delayError)
Construct a SerializedObserver by wrapping the given actualObserverand optionally delaying the errors till all regular values have been emitted from the internal buffer.- Parameters:
actual- the actualObserver, notnull(not verified)delayError- iftrue, errors are emitted after regular values have been emitted
-
-
Method Detail
-
onSubscribe
public void onSubscribe(@NonNull @NonNull Disposable d)
Description copied from interface:ObserverProvides theObserverwith the means of cancelling (disposing) the connection (channel) with theObservablein both synchronous (from withinObserver.onNext(Object)) and asynchronous manner.- Specified by:
onSubscribein interfaceObserver<T>- Parameters:
d- theDisposableinstance whoseDisposable.dispose()can be called anytime to cancel the connection
-
dispose
public void dispose()
Description copied from interface:DisposableDispose the resource, the operation should be idempotent.- Specified by:
disposein interfaceDisposable
-
isDisposed
public boolean isDisposed()
Description copied from interface:DisposableReturns true if this resource has been disposed.- Specified by:
isDisposedin interfaceDisposable- Returns:
- true if this resource has been disposed
-
onNext
public void onNext(@NonNull T t)
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).
-
onError
public void onError(@NonNull @NonNull java.lang.Throwable t)
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>
-
emitLoop
void emitLoop()
-
-