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-nullDisposable
before 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) boolean
delayError
(package private) boolean
done
(package private) Observer<? super T>
downstream
(package private) boolean
emitting
(package private) AppendOnlyLinkedArrayList<java.lang.Object>
queue
(package private) static int
QUEUE_LINK_SIZE
(package private) Disposable
upstream
-
Constructor Summary
Constructors Constructor Description SerializedObserver(@NonNull Observer<? super T> downstream)
Construct aSerializedObserver
by wrapping the given actualObserver
.SerializedObserver(@NonNull Observer<? super T> actual, boolean delayError)
Construct a SerializedObserver by wrapping the given actualObserver
and 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 void
dispose()
Dispose the resource, the operation should be idempotent.(package private) void
emitLoop()
boolean
isDisposed()
Returns true if this resource has been disposed.void
onComplete()
Notifies theObserver
that theObservable
has finished sending push-based notifications.void
onError(@NonNull java.lang.Throwable t)
Notifies theObserver
that theObservable
has experienced an error condition.void
onNext(T t)
Provides theObserver
with a new item to observe.void
onSubscribe(@NonNull Disposable d)
Provides theObserver
with the means of cancelling (disposing) the connection (channel) with theObservable
in 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 aSerializedObserver
by 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 actualObserver
and 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:Observer
Provides theObserver
with the means of cancelling (disposing) the connection (channel) with theObservable
in both synchronous (from withinObserver.onNext(Object)
) and asynchronous manner.- Specified by:
onSubscribe
in interfaceObserver<T>
- Parameters:
d
- theDisposable
instance whoseDisposable.dispose()
can be called anytime to cancel the connection
-
dispose
public void dispose()
Description copied from interface:Disposable
Dispose the resource, the operation should be idempotent.- Specified by:
dispose
in interfaceDisposable
-
isDisposed
public boolean isDisposed()
Description copied from interface:Disposable
Returns true if this resource has been disposed.- Specified by:
isDisposed
in interfaceDisposable
- Returns:
- true if this resource has been disposed
-
onNext
public void onNext(@NonNull T t)
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)
.
-
onError
public void onError(@NonNull @NonNull java.lang.Throwable t)
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>
-
emitLoop
void emitLoop()
-
-