java.lang.Object
io.helidon.common.reactive.RequestedCounter
Requested event counter.
 This utility class helps to safely track and process the back-pressure of
 
Flow.Subscribers.- 
Constructor Summary
ConstructorsConstructorDescriptionCreate new request counter with strict mode off.RequestedCounter(boolean strictMode) Create new request counter, with strict mode true are all operations with counter protected by lock. - 
Method Summary
Modifier and TypeMethodDescriptionlongget()Gets the current requested event counter value.voidincrement(long increment, Consumer<? super IllegalArgumentException> errorHandler) Increments safely a requested event counter to preventLong.MAX_VALUEoverflow.voidlock()Lock internal counter if strict mode is on.booleanTries to safely decrement a positive requested counter value, making sure the value does not drop below zero.voidunlock()Unlock internal counter. 
- 
Constructor Details
- 
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.- Parameters:
 strictMode- true for turning strict mode on
 
 - 
 - 
Method Details
- 
increment
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.
 - 
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.- Returns:
 - current value of the requested event counter.
 
 
 -