Class InnerPublisherSubscription<K,​I,​R>

  • Type Parameters:
    R -
    All Implemented Interfaces:
    io.reactivex.rxjava3.functions.Action, io.reactivex.rxjava3.functions.LongConsumer

    public class InnerPublisherSubscription<K,​I,​R>
    extends Object
    implements io.reactivex.rxjava3.functions.LongConsumer, io.reactivex.rxjava3.functions.Action
    Handles the submission and response handling of an arbitrary amount of address segments. This class will based upon upstream requests send a request to the target address until has retrieved enough entries to satisfy the request threshold. When a given address can no longer return any entries this subscription will try to process the next address/segment combination until it can no longer find any more address/segment targets.

    Note that this publisher returned via createPublisher(ClusterPublisherManagerImpl.SubscriberHandler, int, Supplier, Map, int) can only be subscribed to by one subscriber (more than 1 subscriber will cause issues).

    • Field Detail

      • log

        protected static final Log log
      • trace

        protected static final boolean trace
    • Method Detail

      • run

        public void run()
        This is invoked when the flowable is completed - need to close any pending publishers
        Specified by:
        run in interface io.reactivex.rxjava3.functions.Action
      • accept

        public void accept​(long count)
        This method is invoked every time a new request is sent to the underlying publisher. We need to submit a request if there is not a pending one. Whenever requestedAmount is a number greater than 0, that means we must submit or there is a pending one.
        Specified by:
        accept in interface io.reactivex.rxjava3.functions.LongConsumer
        Parameters:
        count - request count