Class FlowableWindowTimed.AbstractWindowSubscriber<T>
- java.lang.Object
-
- java.lang.Number
-
- java.util.concurrent.atomic.AtomicInteger
-
- io.reactivex.rxjava3.internal.operators.flowable.FlowableWindowTimed.AbstractWindowSubscriber<T>
-
- All Implemented Interfaces:
FlowableSubscriber<T>,java.io.Serializable,org.reactivestreams.Subscriber<T>,org.reactivestreams.Subscription
- Direct Known Subclasses:
FlowableWindowTimed.WindowExactBoundedSubscriber,FlowableWindowTimed.WindowExactUnboundedSubscriber,FlowableWindowTimed.WindowSkipSubscriber
- Enclosing class:
- FlowableWindowTimed<T>
abstract static class FlowableWindowTimed.AbstractWindowSubscriber<T> extends java.util.concurrent.atomic.AtomicInteger implements FlowableSubscriber<T>, org.reactivestreams.Subscription
-
-
Field Summary
Fields Modifier and Type Field Description (package private) intbufferSize(package private) booleandone(package private) org.reactivestreams.Subscriber<? super Flowable<T>>downstream(package private) java.util.concurrent.atomic.AtomicBooleandownstreamCancelled(package private) longemitted(package private) java.lang.Throwableerror(package private) SimplePlainQueue<java.lang.Object>queue(package private) java.util.concurrent.atomic.AtomicLongrequestedprivate static longserialVersionUID(package private) longtimespan(package private) java.util.concurrent.TimeUnitunit(package private) org.reactivestreams.Subscriptionupstream(package private) booleanupstreamCancelled(package private) java.util.concurrent.atomic.AtomicIntegerwindowCount
-
Constructor Summary
Constructors Constructor Description AbstractWindowSubscriber(org.reactivestreams.Subscriber<? super Flowable<T>> downstream, long timespan, java.util.concurrent.TimeUnit unit, int bufferSize)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcancel()(package private) abstract voidcleanupResources()(package private) abstract voidcreateFirstWindow()(package private) abstract voiddrain()voidonComplete()voidonError(java.lang.Throwable t)voidonNext(T t)voidonSubscribe(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).voidrequest(long n)(package private) voidwindowDone()-
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
-
queue
final SimplePlainQueue<java.lang.Object> queue
-
timespan
final long timespan
-
unit
final java.util.concurrent.TimeUnit unit
-
bufferSize
final int bufferSize
-
requested
final java.util.concurrent.atomic.AtomicLong requested
-
emitted
long emitted
-
done
volatile boolean done
-
error
java.lang.Throwable error
-
upstream
org.reactivestreams.Subscription upstream
-
downstreamCancelled
final java.util.concurrent.atomic.AtomicBoolean downstreamCancelled
-
upstreamCancelled
volatile boolean upstreamCancelled
-
windowCount
final java.util.concurrent.atomic.AtomicInteger windowCount
-
-
Method Detail
-
onSubscribe
public final void onSubscribe(org.reactivestreams.Subscription s)
Description copied from interface:FlowableSubscriberImplementors 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:
onSubscribein interfaceFlowableSubscriber<T>- Specified by:
onSubscribein interfaceorg.reactivestreams.Subscriber<T>
-
createFirstWindow
abstract void createFirstWindow()
-
onNext
public final void onNext(T t)
- Specified by:
onNextin interfaceorg.reactivestreams.Subscriber<T>
-
onError
public final void onError(java.lang.Throwable t)
- Specified by:
onErrorin interfaceorg.reactivestreams.Subscriber<T>
-
onComplete
public final void onComplete()
- Specified by:
onCompletein interfaceorg.reactivestreams.Subscriber<T>
-
request
public final void request(long n)
- Specified by:
requestin interfaceorg.reactivestreams.Subscription
-
cancel
public final void cancel()
- Specified by:
cancelin interfaceorg.reactivestreams.Subscription
-
windowDone
final void windowDone()
-
cleanupResources
abstract void cleanupResources()
-
drain
abstract void drain()
-
-