Class RequestedCounter

  • public class RequestedCounter
    extends Object
    Requested event counter. This utility class helps to safely track and process the back-pressure of Flow.Subscribers.
    • Constructor Detail

      • RequestedCounter

        public RequestedCounter()
        Create new request counter with strict mode off.
      • RequestedCounter

        public RequestedCounter​(boolean strictMode)
        Create new request counter, with strict mode true are all operations with counter protected by lock.
        strictMode - true for turning strict mode on
    • Method Detail

      • increment

        public void increment​(long increment,
                              Consumer<? super IllegalArgumentException> errorHandler)
        Increments safely a requested event counter to prevent Long.MAX_VALUE overflow.
        increment - amount of additional events to request.
        errorHandler - a consumer of IllegalArgumentException to process errors
      • tryDecrement

        public boolean tryDecrement()
        Tries to safely decrement a positive requested counter value, making sure the value does not drop below zero.
        true if the initial positive value has been decremented successfully, false in case the initial counter value was already set to zero.
      • lock

        public void lock()
        Lock internal counter if strict mode is on.
      • unlock

        public void unlock()
        Unlock internal counter.
      • get

        public long get()
        Gets the current requested event counter value.
        current value of the requested event counter.