Package io.helidon.common.reactive
Class RequestedCounter
- java.lang.Object
-
- io.helidon.common.reactive.RequestedCounter
-
public class RequestedCounter extends Object
Requested event counter. This utility class helps to safely track and tryProcess the back-pressure ofFlow.Subscribers.
-
-
Constructor Summary
Constructors Constructor Description RequestedCounter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longget()Gets the current requested event counter value.longgetAndReset()Gets the current requested event counter value and resets it to 0.voidincrement(long increment, Consumer<? super IllegalArgumentException> errorHandler)Increments safely a requested event counter to preventLong.MAX_VALUEoverflow.booleantryDecrement()Tries to safely decrement a positive requested counter value, making sure the value does not drop below zero.
-
-
-
Method Detail
-
increment
public void increment(long increment, Consumer<? super IllegalArgumentException> errorHandler)Increments safely a requested event counter to preventLong.MAX_VALUEoverflow.- Parameters:
increment- amount of additional events to request.errorHandler- a consumer ofIllegalArgumentExceptionto process errors
-
tryDecrement
public boolean tryDecrement()
Tries to safely decrement a positive requested counter value, making sure the value does not drop below zero.- Returns:
trueif the initial positive value has been decremented successfully,falsein case the initial counter value was already set to zero.
-
get
public long get()
Gets the current requested event counter value.- Returns:
- current value of the requested event counter.
-
getAndReset
public long getAndReset()
Gets the current requested event counter value and resets it to 0.- Returns:
- current value of the requested event counter.
-
-