Class BlockingObservableIterable.BlockingObservableIterator<T>
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<Disposable>
-
- io.reactivex.rxjava3.internal.operators.observable.BlockingObservableIterable.BlockingObservableIterator<T>
-
- All Implemented Interfaces:
Observer<T>,Disposable,java.io.Serializable,java.util.Iterator<T>
- Enclosing class:
- BlockingObservableIterable<T>
static final class BlockingObservableIterable.BlockingObservableIterator<T> extends java.util.concurrent.atomic.AtomicReference<Disposable> implements Observer<T>, java.util.Iterator<T>, Disposable
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.concurrent.locks.Conditioncondition(package private) booleandone(package private) java.lang.Throwableerror(package private) java.util.concurrent.locks.Locklock(package private) SpscLinkedArrayQueue<T>queueprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description BlockingObservableIterator(int batchSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddispose()Dispose the resource, the operation should be idempotent.booleanhasNext()booleanisDisposed()Returns true if this resource has been disposed.Tnext()voidonComplete()Notifies theObserverthat theObservablehas finished sending push-based notifications.voidonError(java.lang.Throwable t)Notifies theObserverthat theObservablehas experienced an error condition.voidonNext(T t)Provides theObserverwith a new item to observe.voidonSubscribe(Disposable d)Provides theObserverwith the means of cancelling (disposing) the connection (channel) with theObservablein both synchronous (from withinObserver.onNext(Object)) and asynchronous manner.voidremove()(package private) voidsignalConsumer()-
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 SpscLinkedArrayQueue<T> queue
-
lock
final java.util.concurrent.locks.Lock lock
-
condition
final java.util.concurrent.locks.Condition condition
-
done
volatile boolean done
-
error
volatile java.lang.Throwable error
-
-
Method Detail
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfacejava.util.Iterator<T>
-
onSubscribe
public void onSubscribe(Disposable d)
Description copied from interface:ObserverProvides theObserverwith the means of cancelling (disposing) the connection (channel) with theObservablein both synchronous (from withinObserver.onNext(Object)) and asynchronous manner.- Specified by:
onSubscribein interfaceObserver<T>- Parameters:
d- theDisposableinstance whoseDisposable.dispose()can be called anytime to cancel the connection
-
onNext
public void onNext(T t)
Description copied from interface:ObserverProvides theObserverwith a new item to observe.The
Observablemay call this method 0 or more times.The
Observablewill not call this method again after it calls eitherObserver.onComplete()orObserver.onError(java.lang.Throwable).
-
onError
public void onError(java.lang.Throwable t)
Description copied from interface:ObserverNotifies theObserverthat theObservablehas experienced an error condition.If the
Observablecalls this method, it will not thereafter callObserver.onNext(T)orObserver.onComplete().
-
onComplete
public void onComplete()
Description copied from interface:ObserverNotifies theObserverthat theObservablehas finished sending push-based notifications.The
Observablewill not call this method if it callsObserver.onError(java.lang.Throwable).- Specified by:
onCompletein interfaceObserver<T>
-
signalConsumer
void signalConsumer()
-
remove
public void remove()
- Specified by:
removein interfacejava.util.Iterator<T>
-
dispose
public void dispose()
Description copied from interface:DisposableDispose the resource, the operation should be idempotent.- Specified by:
disposein interfaceDisposable
-
isDisposed
public boolean isDisposed()
Description copied from interface:DisposableReturns true if this resource has been disposed.- Specified by:
isDisposedin interfaceDisposable- Returns:
- true if this resource has been disposed
-
-