Class FlowableFlatMap.MergeSubscriber<T,U>
- java.lang.Object
-
- java.lang.Number
-
- java.util.concurrent.atomic.AtomicInteger
-
- io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap.MergeSubscriber<T,U>
-
- All Implemented Interfaces:
FlowableSubscriber<T>
,java.io.Serializable
,org.reactivestreams.Subscriber<T>
,org.reactivestreams.Subscription
- Enclosing class:
- FlowableFlatMap<T,U>
static final class FlowableFlatMap.MergeSubscriber<T,U> extends java.util.concurrent.atomic.AtomicInteger implements FlowableSubscriber<T>, org.reactivestreams.Subscription
-
-
Field Summary
Fields Modifier and Type Field Description (package private) int
bufferSize
(package private) boolean
cancelled
(package private) static FlowableFlatMap.InnerSubscriber<?,?>[]
CANCELLED
(package private) boolean
delayErrors
(package private) boolean
done
(package private) org.reactivestreams.Subscriber<? super U>
downstream
(package private) static FlowableFlatMap.InnerSubscriber<?,?>[]
EMPTY
(package private) AtomicThrowable
errors
(package private) long
lastId
(package private) int
lastIndex
(package private) Function<? super T,? extends org.reactivestreams.Publisher<? extends U>>
mapper
(package private) int
maxConcurrency
(package private) SimplePlainQueue<U>
queue
(package private) java.util.concurrent.atomic.AtomicLong
requested
(package private) int
scalarEmitted
(package private) int
scalarLimit
private static long
serialVersionUID
(package private) java.util.concurrent.atomic.AtomicReference<FlowableFlatMap.InnerSubscriber<?,?>[]>
subscribers
(package private) long
uniqueId
(package private) org.reactivestreams.Subscription
upstream
-
Constructor Summary
Constructors Constructor Description MergeSubscriber(org.reactivestreams.Subscriber<? super U> actual, Function<? super T,? extends org.reactivestreams.Publisher<? extends U>> mapper, boolean delayErrors, int maxConcurrency, int bufferSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) boolean
addInner(FlowableFlatMap.InnerSubscriber<T,U> inner)
void
cancel()
(package private) boolean
checkTerminate()
(package private) void
clearScalarQueue()
(package private) void
disposeAll()
(package private) void
drain()
(package private) void
drainLoop()
(package private) SimpleQueue<U>
getMainQueue()
(package private) void
innerError(FlowableFlatMap.InnerSubscriber<T,U> inner, java.lang.Throwable t)
void
onComplete()
void
onError(java.lang.Throwable t)
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)
.(package private) void
removeInner(FlowableFlatMap.InnerSubscriber<T,U> inner)
void
request(long n)
(package private) void
tryEmit(U value, FlowableFlatMap.InnerSubscriber<T,U> inner)
(package private) void
tryEmitScalar(U value)
-
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 U> downstream
-
delayErrors
final boolean delayErrors
-
maxConcurrency
final int maxConcurrency
-
bufferSize
final int bufferSize
-
queue
volatile SimplePlainQueue<U> queue
-
done
volatile boolean done
-
errors
final AtomicThrowable errors
-
cancelled
volatile boolean cancelled
-
subscribers
final java.util.concurrent.atomic.AtomicReference<FlowableFlatMap.InnerSubscriber<?,?>[]> subscribers
-
EMPTY
static final FlowableFlatMap.InnerSubscriber<?,?>[] EMPTY
-
CANCELLED
static final FlowableFlatMap.InnerSubscriber<?,?>[] CANCELLED
-
requested
final java.util.concurrent.atomic.AtomicLong requested
-
upstream
org.reactivestreams.Subscription upstream
-
uniqueId
long uniqueId
-
lastId
long lastId
-
lastIndex
int lastIndex
-
scalarEmitted
int scalarEmitted
-
scalarLimit
final int scalarLimit
-
-
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>
-
addInner
boolean addInner(FlowableFlatMap.InnerSubscriber<T,U> inner)
-
removeInner
void removeInner(FlowableFlatMap.InnerSubscriber<T,U> inner)
-
getMainQueue
SimpleQueue<U> getMainQueue()
-
tryEmitScalar
void tryEmitScalar(U value)
-
tryEmit
void tryEmit(U value, FlowableFlatMap.InnerSubscriber<T,U> inner)
-
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()
-
drainLoop
void drainLoop()
-
checkTerminate
boolean checkTerminate()
-
clearScalarQueue
void clearScalarQueue()
-
disposeAll
void disposeAll()
-
innerError
void innerError(FlowableFlatMap.InnerSubscriber<T,U> inner, java.lang.Throwable t)
-
-