Interface AsyncStrongCounter
public interface AsyncStrongCounter
The strong consistent counter interface.
It provides atomic updates for the counter. All the operations are perform asynchronously and they complete the
CompletionStage when completed.
- Since:
- 14.0
-
Method Summary
Modifier and TypeMethodDescriptionaddAndGet(long delta) Atomically adds the given value and return the new value.default CompletionStage<Boolean> compareAndSet(long expect, long update) Atomically sets the value to the given updated value if the current value==the expected value.compareAndSwap(long expect, long update) Atomically sets the value to the given updated value if the current value==the expected value.Retrieves the counter's configuration.Return the container of this counterdefault CompletionStage<Long> Atomically decrements the counter and returns the new valuegetAndSet(long value) Atomically sets the value to the given updated valuedefault CompletionStage<Long> Atomically increments the counter and returns the new value.listen(Consumer<CounterEvent> listener) Registers aConsumer<CounterEvent>to this counter.name()reset()Resets the counter to its initial value.value()It fetches the current value.
-
Method Details
-
name
String name()- Returns:
- The counter name.
-
configuration
CompletionStage<CounterConfiguration> configuration()Retrieves the counter's configuration.- Returns:
- this counter's configuration.
-
container
-
value
CompletionStage<Long> value()It fetches the current value.It may go remotely to fetch the current value.
- Returns:
- The current value.
-
incrementAndGet
Atomically increments the counter and returns the new value.- Returns:
- The new value.
-
decrementAndGet
Atomically decrements the counter and returns the new value- Returns:
- The new value.
-
addAndGet
Atomically adds the given value and return the new value.- Parameters:
delta- The non-zero value to add. It can be negative.- Returns:
- The new value.
-
reset
CompletionStage<Void> reset()Resets the counter to its initial value. -
listen
Registers aConsumer<CounterEvent>to this counter.- Parameters:
listener- The listener to register.- Returns:
- A
AutoCloseablethat allows to remove the listener viaAutoCloseable.close().
-
compareAndSet
Atomically sets the value to the given updated value if the current value==the expected value.It is the same as
return compareAndSwap(expect, update).thenApply(value -> value == expect);- Parameters:
expect- the expected valueupdate- the new value- Returns:
trueif successful,falseotherwise.
-
compareAndSwap
Atomically sets the value to the given updated value if the current value==the expected value.The operation is successful if the return value is equals to the expected value.
- Parameters:
expect- the expected value.update- the new value.- Returns:
- the previous counter's value.
-
getAndSet
Atomically sets the value to the given updated value- Parameters:
value- the new value.- Returns:
- the old counter value.
-