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
Serializes access to the
Observer.onNext(Object)
, Observer.onError(Throwable)
and
Observer.onComplete()
methods of another Observer
.
Note that onSubscribe(Disposable)
is not serialized in respect of the other methods so
make sure the onSubscribe()
is called with a non-null Disposable
before any of the other methods are called.
The implementation assumes that the actual Observer
's methods don't throw.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final boolean
(package private) boolean
(package private) boolean
(package private) AppendOnlyLinkedArrayList
<Object> (package private) static final int
(package private) Disposable
-
Constructor Summary
ConstructorsConstructorDescriptionSerializedObserver
(@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
Modifier and TypeMethodDescriptionvoid
dispose()
Dispose the resource, the operation should be idempotent.(package private) void
emitLoop()
boolean
Returns true if this resource has been disposed.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.void
Provides theObserver
with the means of cancelling (disposing) the connection (channel) with theObservable
in both synchronous (from withinObserver.onNext(Object)
) and asynchronous manner.
-
Field Details
-
downstream
-
delayError
final boolean delayError -
QUEUE_LINK_SIZE
static final int QUEUE_LINK_SIZE- See Also:
-
upstream
Disposable upstream -
emitting
boolean emitting -
queue
AppendOnlyLinkedArrayList<Object> queue -
done
volatile boolean done
-
-
Constructor Details
-
SerializedObserver
Construct aSerializedObserver
by wrapping the given actualObserver
.- Parameters:
downstream
- the actualObserver
, notnull
(not verified)
-
SerializedObserver
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 Details
-
onSubscribe
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
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
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()
-