Package org.jgroups.blocks.atomic
Interface AsyncCounter
-
- All Superinterfaces:
BaseCounter
- All Known Implementing Classes:
COUNTER.CounterImpl
public interface AsyncCounter extends BaseCounter
An asynchronous counter interface.- Since:
- 5.2
- Author:
- Pedro Ruivo
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description java.util.concurrent.CompletionStage<java.lang.Long>
addAndGet(long delta)
Atomically adds the given value to the current value.default AsyncCounter
async()
Returns anAsyncCounter
wrapper for this instance.default java.util.concurrent.CompletionStage<java.lang.Boolean>
compareAndSet(long expect, long update)
Atomically updates the counter using a compare-and-set operation.java.util.concurrent.CompletionStage<java.lang.Long>
compareAndSwap(long expect, long update)
Atomically updates the counter using a compare-and-swap operation.default java.util.concurrent.CompletionStage<java.lang.Long>
decrementAndGet()
Atomically decrements the counter and returns the new valuedefault java.util.concurrent.CompletionStage<java.lang.Long>
get()
Gets the current value of the counter.default java.util.concurrent.CompletionStage<java.lang.Long>
incrementAndGet()
Atomically increments the counter and returns the new valuejava.util.concurrent.CompletionStage<java.lang.Void>
set(long new_value)
Sets the counter to a new value.default <T extends Streamable>
java.util.concurrent.CompletionStage<T>update(CounterFunction<T> updateFunction)
Atomically updates the counter's value.-
Methods inherited from interface org.jgroups.blocks.atomic.BaseCounter
getName, sync
-
-
-
-
Method Detail
-
get
default java.util.concurrent.CompletionStage<java.lang.Long> get()
Gets the current value of the counter.- Returns:
- A
CompletionStage
that is completed with the counter's value.
-
set
java.util.concurrent.CompletionStage<java.lang.Void> set(long new_value)
Sets the counter to a new value.- Returns:
- A
CompletionStage
that is completed with the counter's value is updated.
-
compareAndSet
default java.util.concurrent.CompletionStage<java.lang.Boolean> compareAndSet(long expect, long update)
Atomically updates the counter using a compare-and-set operation.- Parameters:
expect
- The expected value of the counterupdate
- The new value of the counter- Returns:
- A
CompletionStage
that is completed withtrue
if the counter is updated and {@link false} otherwise.
-
compareAndSwap
java.util.concurrent.CompletionStage<java.lang.Long> compareAndSwap(long expect, long update)
Atomically updates the counter using a compare-and-swap operation.- Parameters:
expect
- The expected value of the counterupdate
- The new value of the counter- Returns:
- A
CompletionStage
that is completed with the current counter's value.
-
incrementAndGet
default java.util.concurrent.CompletionStage<java.lang.Long> incrementAndGet()
Atomically increments the counter and returns the new value- Returns:
- A
CompletionStage
that is completed with the new counter's value.
-
decrementAndGet
default java.util.concurrent.CompletionStage<java.lang.Long> decrementAndGet()
Atomically decrements the counter and returns the new value- Returns:
- A
CompletionStage
that is completed with the new counter's value.
-
addAndGet
java.util.concurrent.CompletionStage<java.lang.Long> addAndGet(long delta)
Atomically adds the given value to the current value.- Parameters:
delta
- the value to add- Returns:
- A
CompletionStage
that is completed with the updated counter's value.
-
update
default <T extends Streamable> java.util.concurrent.CompletionStage<T> update(CounterFunction<T> updateFunction)
Atomically updates the counter's value.Both
CounterFunction
and return value must implementStreamable
to be sent over the network. The function should not block thread since it can cause deadlocks neither invoke any operation over theAsyncCounter
.The
CounterView
is a copy of the counter's value and the lastCounterView.set(long)
will be applied to the counter.- Type Parameters:
T
- The return value type.- Parameters:
updateFunction
- The updateCounterFunction
.- Returns:
- The
CompletionStage
which will be completed with theCounterFunction
return value. - See Also:
CounterFunction
,CounterView
,LongSizeStreamable
-
async
default AsyncCounter async()
Description copied from interface:BaseCounter
Returns anAsyncCounter
wrapper for this instance. If this counter is already asynchronous, then this counter instance is returned (no-op)- Specified by:
async
in interfaceBaseCounter
- Returns:
- The
AsyncCounter
instance.
-
-