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 java.lang.Object implements FlowableSubscriber<T>, org.reactivestreams.Subscription
Wraps anotherSubscriber
and ensures allonXXX
methods conform the protocol (except the requirement for serialized access).
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
done
Indicates a terminal state.(package private) org.reactivestreams.Subscriber<? super T>
downstream
The actual Subscriber.(package private) org.reactivestreams.Subscription
upstream
The subscription.
-
Constructor Summary
Constructors Constructor Description SafeSubscriber(@NonNull org.reactivestreams.Subscriber<? super @NonNull T> downstream)
Constructs aSafeSubscriber
by wrapping the given actualSubscriber
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancel()
void
onComplete()
(package private) void
onCompleteNoSubscription()
void
onError(@NonNull java.lang.Throwable t)
void
onNext(@NonNull T t)
(package private) void
onNextNoSubscription()
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 Detail
-
downstream
final org.reactivestreams.Subscriber<? super T> downstream
The actual Subscriber.
-
upstream
org.reactivestreams.Subscription upstream
The subscription.
-
done
boolean done
Indicates a terminal state.
-
-
Method Detail
-
onSubscribe
public void onSubscribe(@NonNull @NonNull org.reactivestreams.Subscription s)
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
public void onNext(@NonNull @NonNull T t)
- Specified by:
onNext
in interfaceorg.reactivestreams.Subscriber<T>
-
onNextNoSubscription
void onNextNoSubscription()
-
onError
public void onError(@NonNull @NonNull java.lang.Throwable t)
- 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
-
-