Class ScalarSynchronousObservable.ScalarAsyncProducer<T>

  • Type Parameters:
    T - the value type
    All Implemented Interfaces:
    java.io.Serializable, Action, Action0, Function, Producer
    Enclosing class:
    ScalarSynchronousObservable<T>

    static final class ScalarSynchronousObservable.ScalarAsyncProducer<T>
    extends java.util.concurrent.atomic.AtomicBoolean
    implements Producer, Action0
    Represents a producer which schedules the emission of a scalar value on the first positive request via the given scheduler callback.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void call()  
      void request​(long n)
      Request a certain maximum number of items from this Producer.
      java.lang.String toString()  
      • Methods inherited from class java.util.concurrent.atomic.AtomicBoolean

        compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndSet, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • request

        public void request​(long n)
        Description copied from interface: Producer
        Request a certain maximum number of items from this Producer. This is a way of requesting backpressure. To disable backpressure, pass Long.MAX_VALUE to this method.

        Requests are additive but if a sequence of requests totals more than Long.MAX_VALUE then Long.MAX_VALUE requests will be actioned and the extras may be ignored. Arriving at Long.MAX_VALUE by addition of requests cannot be assumed to disable backpressure. For example, the code below may result in Long.MAX_VALUE requests being actioned only.

         request(100);
         request(Long.MAX_VALUE-1);
         
        Specified by:
        request in interface Producer
        Parameters:
        n - the maximum number of items you want this Producer to produce, or Long.MAX_VALUE if you want the Producer to produce items at its own pace
      • call

        public void call()
        Specified by:
        call in interface Action0
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.util.concurrent.atomic.AtomicBoolean