Package io.reactivex.rxjava3.subscribers
Class SafeSubscriber<T>
java.lang.Object
io.reactivex.rxjava3.subscribers.SafeSubscriber<T>
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
FlowableSubscriber<T>
,org.reactivestreams.Subscriber<T>
,org.reactivestreams.Subscription
public final class SafeSubscriber<@NonNull T>
extends Object
implements FlowableSubscriber<T>, org.reactivestreams.Subscription
Wraps another
Subscriber
and ensures all onXXX
methods conform the protocol
(except the requirement for serialized access).-
Field Summary
FieldsModifier and TypeFieldDescription(package private) boolean
Indicates a terminal state.(package private) final org.reactivestreams.Subscriber
<? super T> The actual Subscriber.(package private) org.reactivestreams.Subscription
The subscription. -
Constructor Summary
ConstructorsConstructorDescriptionSafeSubscriber
(@NonNull org.reactivestreams.Subscriber<? super @NonNull T> downstream) Constructs aSafeSubscriber
by wrapping the given actualSubscriber
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
cancel()
void
(package private) void
void
void
(package private) void
void
onSubscribe
(@NonNull org.reactivestreams.Subscription s) Implementors of this method should make sure everything that needs to be visible inSubscriber.onNext(Object)
is established before callingSubscription.request(long)
.void
request
(long n)
-
Field Details
-
downstream
The actual Subscriber. -
upstream
org.reactivestreams.Subscription upstreamThe subscription. -
done
boolean doneIndicates a terminal state.
-
-
Constructor Details
-
Method Details
-
onSubscribe
Description copied from interface:FlowableSubscriber
Implementors of this method should make sure everything that needs to be visible inSubscriber.onNext(Object)
is established before callingSubscription.request(long)
. In practice this means no initialization should happen after therequest()
call and additional behavior is thread safe in respect toonNext
.- Specified by:
onSubscribe
in interfaceFlowableSubscriber<T>
- Specified by:
onSubscribe
in interfaceorg.reactivestreams.Subscriber<T>
-
onNext
- Specified by:
onNext
in interfaceorg.reactivestreams.Subscriber<T>
-
onNextNoSubscription
void onNextNoSubscription() -
onError
- Specified by:
onError
in interfaceorg.reactivestreams.Subscriber<T>
-
onComplete
public void onComplete()- Specified by:
onComplete
in interfaceorg.reactivestreams.Subscriber<T>
-
onCompleteNoSubscription
void onCompleteNoSubscription() -
request
public void request(long n) - Specified by:
request
in interfaceorg.reactivestreams.Subscription
-
cancel
public void cancel()- Specified by:
cancel
in interfaceorg.reactivestreams.Subscription
-