Class BlockingFlowableIterable.BlockingFlowableIterator<T>
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<org.reactivestreams.Subscription>
-
- io.reactivex.rxjava3.internal.operators.flowable.BlockingFlowableIterable.BlockingFlowableIterator<T>
-
- All Implemented Interfaces:
FlowableSubscriber<T>
,Disposable
,java.io.Serializable
,java.lang.Runnable
,java.util.Iterator<T>
,org.reactivestreams.Subscriber<T>
- Enclosing class:
- BlockingFlowableIterable<T>
static final class BlockingFlowableIterable.BlockingFlowableIterator<T> extends java.util.concurrent.atomic.AtomicReference<org.reactivestreams.Subscription> implements FlowableSubscriber<T>, java.util.Iterator<T>, java.lang.Runnable, Disposable
-
-
Field Summary
Fields Modifier and Type Field Description (package private) long
batchSize
(package private) java.util.concurrent.locks.Condition
condition
(package private) boolean
done
(package private) java.lang.Throwable
error
(package private) long
limit
(package private) java.util.concurrent.locks.Lock
lock
(package private) long
produced
(package private) SpscArrayQueue<T>
queue
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description BlockingFlowableIterator(int batchSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
Dispose the resource, the operation should be idempotent.boolean
hasNext()
boolean
isDisposed()
Returns true if this resource has been disposed.T
next()
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)
.void
remove()
void
run()
(package private) void
signalConsumer()
-
Methods inherited from class java.util.concurrent.atomic.AtomicReference
accumulateAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndAccumulate, getAndSet, getAndUpdate, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
queue
final SpscArrayQueue<T> queue
-
batchSize
final long batchSize
-
limit
final long limit
-
lock
final java.util.concurrent.locks.Lock lock
-
condition
final java.util.concurrent.locks.Condition condition
-
produced
long produced
-
done
volatile boolean done
-
error
volatile java.lang.Throwable error
-
-
Method Detail
-
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interfacejava.util.Iterator<T>
-
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>
-
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>
-
signalConsumer
void signalConsumer()
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
-
remove
public void remove()
- Specified by:
remove
in interfacejava.util.Iterator<T>
-
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
-
-