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>, 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 AtomicInteger implements FlowableSubscriber<T>, org.reactivestreams.Subscription
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • downstream

      final org.reactivestreams.Subscriber<? super Flowable<T>> downstream
    • queue

      final SimplePlainQueue<Object> queue
    • timespan

      final long timespan
    • unit

      final TimeUnit unit
    • bufferSize

      final int bufferSize
    • requested

      final AtomicLong requested
    • emitted

      long emitted
    • done

      volatile boolean done
    • error

      Throwable error
    • upstream

      org.reactivestreams.Subscription upstream
    • downstreamCancelled

      final AtomicBoolean downstreamCancelled
    • upstreamCancelled

      volatile boolean upstreamCancelled
    • windowCount

      final AtomicInteger windowCount
  • Constructor Details

    • AbstractWindowSubscriber

      AbstractWindowSubscriber(org.reactivestreams.Subscriber<? super Flowable<T>> downstream, long timespan, TimeUnit unit, int bufferSize)
  • Method Details

    • onSubscribe

      public final void onSubscribe(org.reactivestreams.Subscription s)
      Description copied from interface: FlowableSubscriber
      Implementors of this method should make sure everything that needs to be visible in Subscriber.onNext(Object) is established before calling Subscription.request(long). In practice this means no initialization should happen after the request() call and additional behavior is thread safe in respect to onNext.
      Specified by:
      onSubscribe in interface FlowableSubscriber<T>
      Specified by:
      onSubscribe in interface org.reactivestreams.Subscriber<T>
    • createFirstWindow

      abstract void createFirstWindow()
    • onNext

      public final void onNext(T t)
      Specified by:
      onNext in interface org.reactivestreams.Subscriber<T>
    • onError

      public final void onError(Throwable t)
      Specified by:
      onError in interface org.reactivestreams.Subscriber<T>
    • onComplete

      public final void onComplete()
      Specified by:
      onComplete in interface org.reactivestreams.Subscriber<T>
    • request

      public final void request(long n)
      Specified by:
      request in interface org.reactivestreams.Subscription
    • cancel

      public final void cancel()
      Specified by:
      cancel in interface org.reactivestreams.Subscription
    • windowDone

      final void windowDone()
    • cleanupResources

      abstract void cleanupResources()
    • drain

      abstract void drain()