Package 

Class SingleProducer

  • All Implemented Interfaces:
    com.tds.common.reactor.Producer , java.io.Serializable

    
    public final class SingleProducer<T>
    extends AtomicBoolean implements Producer
                        

    A producer which emits a single value and completes the child on the first positive request.

    • Constructor Summary

      Constructors 
      Constructor Description
      SingleProducer(Subscriber<out Object> child, T value) Constructs the producer with the given target child and value to be emitted.
    • Method Summary

      Modifier and Type Method Description
      void request(long n) Request a certain maximum number of items from this Producer.
      • Methods inherited from class java.util.concurrent.atomic.AtomicBoolean

        compareAndSet, get, getAndSet, lazySet, set, toString, weakCompareAndSet
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SingleProducer

        SingleProducer(Subscriber<out Object> child, T value)
        Constructs the producer with the given target child and value to be emitted.
        Parameters:
        child - the child subscriber, non-null
        value - the value to be emitted, may be null
    • Method Detail

      • request

         void request(long n)

        Request a certain maximum number of items from this Producer. This is a way of requesting backpressure.To disable backpressure, pass {@code Long.MAX_VALUE} to this method.

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

        request(100);
        request(Long.MAX_VALUE-1);
        
        Parameters:
        n - the maximum number of items you want this Producer to produce, or {@code Long.MAX_VALUE} if youwant the Producer to produce items at its own pace