Class AbstractBackpressureThrottlingSubscriber<T,R>
- java.lang.Object
-
- java.lang.Number
-
- java.util.concurrent.atomic.AtomicInteger
-
- io.reactivex.rxjava3.internal.operators.flowable.AbstractBackpressureThrottlingSubscriber<T,R>
-
- Type Parameters:
T
- the upstream value typeR
- the downstream value type
- All Implemented Interfaces:
FlowableSubscriber<T>
,java.io.Serializable
,org.reactivestreams.Subscriber<T>
,org.reactivestreams.Subscription
- Direct Known Subclasses:
FlowableOnBackpressureLatest.BackpressureLatestSubscriber
,FlowableOnBackpressureReduce.BackpressureReduceSubscriber
,FlowableOnBackpressureReduceWith.BackpressureReduceWithSubscriber
abstract class AbstractBackpressureThrottlingSubscriber<T,R> extends java.util.concurrent.atomic.AtomicInteger implements FlowableSubscriber<T>, org.reactivestreams.Subscription
Abstract base class for operators that throttle excessive updates from upstream in case if downstreamSubscriber
is not ready to receive updates.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
cancelled
(package private) java.util.concurrent.atomic.AtomicReference<R>
current
(package private) boolean
done
(package private) org.reactivestreams.Subscriber<? super R>
downstream
(package private) java.lang.Throwable
error
(package private) java.util.concurrent.atomic.AtomicLong
requested
private static long
serialVersionUID
(package private) org.reactivestreams.Subscription
upstream
-
Constructor Summary
Constructors Constructor Description AbstractBackpressureThrottlingSubscriber(org.reactivestreams.Subscriber<? super R> downstream)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cancel()
(package private) boolean
checkTerminated(boolean d, boolean empty, org.reactivestreams.Subscriber<?> a, java.util.concurrent.atomic.AtomicReference<R> q)
(package private) void
drain()
void
onComplete()
void
onError(java.lang.Throwable t)
abstract void
onNext(T t)
void
onSubscribe(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)
-
Methods inherited from class java.util.concurrent.atomic.AtomicInteger
accumulateAndGet, addAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, decrementAndGet, doubleValue, floatValue, get, getAcquire, getAndAccumulate, getAndAdd, getAndDecrement, getAndIncrement, getAndSet, getAndUpdate, getOpaque, getPlain, incrementAndGet, intValue, lazySet, longValue, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
downstream
final org.reactivestreams.Subscriber<? super R> downstream
-
upstream
org.reactivestreams.Subscription upstream
-
done
volatile boolean done
-
error
java.lang.Throwable error
-
cancelled
volatile boolean cancelled
-
requested
final java.util.concurrent.atomic.AtomicLong requested
-
current
final java.util.concurrent.atomic.AtomicReference<R> current
-
-
Constructor Detail
-
AbstractBackpressureThrottlingSubscriber
AbstractBackpressureThrottlingSubscriber(org.reactivestreams.Subscriber<? super R> downstream)
-
-
Method Detail
-
onSubscribe
public void onSubscribe(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 abstract void onNext(T t)
- Specified by:
onNext
in interfaceorg.reactivestreams.Subscriber<T>
-
onError
public void onError(java.lang.Throwable t)
- Specified by:
onError
in interfaceorg.reactivestreams.Subscriber<T>
-
onComplete
public void onComplete()
- Specified by:
onComplete
in interfaceorg.reactivestreams.Subscriber<T>
-
request
public void request(long n)
- Specified by:
request
in interfaceorg.reactivestreams.Subscription
-
cancel
public void cancel()
- Specified by:
cancel
in interfaceorg.reactivestreams.Subscription
-
drain
void drain()
-
checkTerminated
boolean checkTerminated(boolean d, boolean empty, org.reactivestreams.Subscriber<?> a, java.util.concurrent.atomic.AtomicReference<R> q)
-
-