Class OnSubscribeCombineLatest.LatestCoordinator<T,​R>

    • Constructor Summary

      Constructors 
      Constructor Description
      LatestCoordinator​(Subscriber<? super R> actual, FuncN<? extends R> combiner, int count, int bufferSize, boolean delayError)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void cancel​(java.util.Queue<?> q)  
      (package private) boolean checkTerminated​(boolean mainDone, boolean queueEmpty, Subscriber<?> childSubscriber, java.util.Queue<?> q, boolean delayError)  
      (package private) void combine​(java.lang.Object value, int index)
      Combine the given notification value from the indexth source with the existing known latest values.
      (package private) void drain()  
      boolean isUnsubscribed()
      Indicates whether this Subscription is currently unsubscribed.
      (package private) void onError​(java.lang.Throwable e)  
      void request​(long n)
      Request a certain maximum number of items from this Producer.
      void subscribe​(Observable<? extends T>[] sources)  
      void unsubscribe()
      Stops the receipt of notifications on the Subscriber that was registered when this Subscription was received.
      • 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
      • Methods inherited from class java.lang.Number

        byteValue, shortValue
      • Methods inherited from class java.lang.Object

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

      • combiner

        final FuncN<? extends R> combiner
      • count

        final int count
      • bufferSize

        final int bufferSize
      • latest

        final java.lang.Object[] latest
      • delayError

        final boolean delayError
      • cancelled

        volatile boolean cancelled
      • done

        volatile boolean done
      • requested

        final java.util.concurrent.atomic.AtomicLong requested
      • error

        final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> error
      • active

        int active
      • complete

        int complete
      • MISSING

        static final java.lang.Object MISSING
        Indicates the particular source hasn't emitted any value yet.
    • Constructor Detail

      • LatestCoordinator

        public LatestCoordinator​(Subscriber<? super R> actual,
                                 FuncN<? extends R> combiner,
                                 int count,
                                 int bufferSize,
                                 boolean delayError)
    • Method Detail

      • subscribe

        public void subscribe​(Observable<? extends T>[] sources)
      • 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
      • unsubscribe

        public void unsubscribe()
        Description copied from interface: Subscription
        Stops the receipt of notifications on the Subscriber that was registered when this Subscription was received.

        This allows unregistering an Subscriber before it has finished receiving all events (i.e. before onCompleted is called).

        Specified by:
        unsubscribe in interface Subscription
      • isUnsubscribed

        public boolean isUnsubscribed()
        Description copied from interface: Subscription
        Indicates whether this Subscription is currently unsubscribed.
        Specified by:
        isUnsubscribed in interface Subscription
        Returns:
        true if this Subscription is currently unsubscribed, false otherwise
      • cancel

        void cancel​(java.util.Queue<?> q)
      • combine

        void combine​(java.lang.Object value,
                     int index)
        Combine the given notification value from the indexth source with the existing known latest values.
        Parameters:
        value - the notification to combine, null indicates the source terminated normally
        index - the index of the source subscriber
      • drain

        void drain()
      • checkTerminated

        boolean checkTerminated​(boolean mainDone,
                                boolean queueEmpty,
                                Subscriber<?> childSubscriber,
                                java.util.Queue<?> q,
                                boolean delayError)
      • onError

        void onError​(java.lang.Throwable e)