Class AsyncLocalAtomicInteger
- java.lang.Object
-
- com.oracle.coherence.concurrent.atomic.AsyncLocalAtomicInteger
-
- All Implemented Interfaces:
AsyncAtomicInteger
public class AsyncLocalAtomicInteger extends Object implements AsyncAtomicInteger
Local implementation ofAsyncAtomicInteger
interface, that simply wrapsjava.util.concurrent.atomic.AtomicInteger
instance and returns an already completed future from each method.- Since:
- 21.12
- Author:
- Aleks Seovic 2020.12.07
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AsyncLocalAtomicInteger(AtomicInteger value)
ConstructLocalAtomicInteger
instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CompletableFuture<Integer>
accumulateAndGet(int nUpdate, Remote.IntBinaryOperator accumulatorFunction)
Atomically updates the current value with the results of applying the given function to the current and given values, returning the updated value.CompletableFuture<Integer>
accumulateAndGet(int nUpdate, IntBinaryOperator accumulatorFunction)
Atomically updates the current value with the results of applying the given function to the current and given values, returning the updated value.CompletableFuture<Integer>
addAndGet(int nDelta)
Atomically adds the given value to the current value.CompletableFuture<Byte>
byteValue()
Returns the current value of thisAsyncAtomicInteger
as abyte
after a narrowing primitive conversion.CompletableFuture<Integer>
compareAndExchange(int nExpectedValue, int nNewValue)
Atomically sets the value tonewValue
if the current value, referred to as the witness value,== expectedValue
.CompletableFuture<Boolean>
compareAndSet(int nExpectedValue, int nNewValue)
Atomically sets the value tonewValue
if the current value== expectedValue
.CompletableFuture<Integer>
decrementAndGet()
Atomically decrements the current value.CompletableFuture<Double>
doubleValue()
Returns the current value of thisAsyncAtomicInteger
as adouble
after a widening primitive conversion.CompletableFuture<Float>
floatValue()
Returns the current value of thisAsyncAtomicInteger
as afloat
after a widening primitive conversion.CompletableFuture<Integer>
get()
Returns the current value.CompletableFuture<Integer>
getAndAccumulate(int x, Remote.IntBinaryOperator accumulatorFunction)
Atomically updates the current value with the results of applying the given function to the current and given values, returning the previous value.CompletableFuture<Integer>
getAndAccumulate(int nUpdate, IntBinaryOperator accumulatorFunction)
Atomically updates the current value with the results of applying the given function to the current and given values, returning the previous value.CompletableFuture<Integer>
getAndAdd(int nDelta)
Atomically adds the given value to the current value.CompletableFuture<Integer>
getAndDecrement()
Atomically decrements the current value.CompletableFuture<Integer>
getAndIncrement()
Atomically increments the current value.CompletableFuture<Integer>
getAndSet(int nNewValue)
Atomically sets the value tonewValue
and returns the old value.CompletableFuture<Integer>
getAndUpdate(Remote.IntUnaryOperator updateFunction)
Atomically updates the current value with the results of applying the given function, returning the previous value.CompletableFuture<Integer>
getAndUpdate(IntUnaryOperator updateFunction)
Atomically updates the current value with the results of applying the given function, returning the previous value.CompletableFuture<Integer>
incrementAndGet()
Atomically increments the current value.CompletableFuture<Integer>
intValue()
Returns the current value of thisAsyncAtomicInteger
as anint
.CompletableFuture<Long>
longValue()
Returns the current value of thisAsyncAtomicInteger
as along
after a widening primitive conversion.CompletableFuture<Void>
set(int nNewValue)
Sets the value tonewValue
.CompletableFuture<Short>
shortValue()
Returns the current value of thisAsyncAtomicInteger
as ashort
after a narrowing primitive conversion.String
toString()
Returns the String representation of the current value.CompletableFuture<Integer>
updateAndGet(Remote.IntUnaryOperator updateFunction)
Atomically updates the current value with the results of applying the given function, returning the updated value.CompletableFuture<Integer>
updateAndGet(IntUnaryOperator updateFunction)
Atomically updates the current value with the results of applying the given function, returning the updated value.
-
-
-
Constructor Detail
-
AsyncLocalAtomicInteger
protected AsyncLocalAtomicInteger(AtomicInteger value)
ConstructLocalAtomicInteger
instance.- Parameters:
value
- wrapped value
-
-
Method Detail
-
get
public CompletableFuture<Integer> get()
Description copied from interface:AsyncAtomicInteger
Returns the current value.- Specified by:
get
in interfaceAsyncAtomicInteger
- Returns:
- the current value
-
set
public CompletableFuture<Void> set(int nNewValue)
Description copied from interface:AsyncAtomicInteger
Sets the value tonewValue
.- Specified by:
set
in interfaceAsyncAtomicInteger
- Parameters:
nNewValue
- the new value- Returns:
- a
CompletableFuture
that can be used to determine whether the operation completed
-
getAndSet
public CompletableFuture<Integer> getAndSet(int nNewValue)
Description copied from interface:AsyncAtomicInteger
Atomically sets the value tonewValue
and returns the old value.- Specified by:
getAndSet
in interfaceAsyncAtomicInteger
- Parameters:
nNewValue
- the new value- Returns:
- the previous value
-
compareAndSet
public CompletableFuture<Boolean> compareAndSet(int nExpectedValue, int nNewValue)
Description copied from interface:AsyncAtomicInteger
Atomically sets the value tonewValue
if the current value== expectedValue
.- Specified by:
compareAndSet
in interfaceAsyncAtomicInteger
- Parameters:
nExpectedValue
- the expected valuenNewValue
- the new value- Returns:
true
if successful. False return indicates that the actual value was not equal to the expected value.
-
getAndIncrement
public CompletableFuture<Integer> getAndIncrement()
Description copied from interface:AsyncAtomicInteger
Atomically increments the current value.Equivalent to
getAndAdd(1)
.- Specified by:
getAndIncrement
in interfaceAsyncAtomicInteger
- Returns:
- the previous value
-
getAndDecrement
public CompletableFuture<Integer> getAndDecrement()
Description copied from interface:AsyncAtomicInteger
Atomically decrements the current value.Equivalent to
getAndAdd(-1)
.- Specified by:
getAndDecrement
in interfaceAsyncAtomicInteger
- Returns:
- the previous value
-
getAndAdd
public CompletableFuture<Integer> getAndAdd(int nDelta)
Description copied from interface:AsyncAtomicInteger
Atomically adds the given value to the current value.- Specified by:
getAndAdd
in interfaceAsyncAtomicInteger
- Parameters:
nDelta
- the value to add- Returns:
- the previous value
-
incrementAndGet
public CompletableFuture<Integer> incrementAndGet()
Description copied from interface:AsyncAtomicInteger
Atomically increments the current value.Equivalent to
addAndGet(1)
.- Specified by:
incrementAndGet
in interfaceAsyncAtomicInteger
- Returns:
- the updated value
-
decrementAndGet
public CompletableFuture<Integer> decrementAndGet()
Description copied from interface:AsyncAtomicInteger
Atomically decrements the current value.Equivalent to
addAndGet(-1)
.- Specified by:
decrementAndGet
in interfaceAsyncAtomicInteger
- Returns:
- the updated value
-
addAndGet
public CompletableFuture<Integer> addAndGet(int nDelta)
Description copied from interface:AsyncAtomicInteger
Atomically adds the given value to the current value.- Specified by:
addAndGet
in interfaceAsyncAtomicInteger
- Parameters:
nDelta
- the value to add- Returns:
- the updated value
-
getAndUpdate
public CompletableFuture<Integer> getAndUpdate(Remote.IntUnaryOperator updateFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function, returning the previous value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.- Specified by:
getAndUpdate
in interfaceAsyncAtomicInteger
- Parameters:
updateFunction
- a side-effect-free function- Returns:
- the previous value
-
getAndUpdate
public CompletableFuture<Integer> getAndUpdate(IntUnaryOperator updateFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function, returning the previous value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.- Specified by:
getAndUpdate
in interfaceAsyncAtomicInteger
- Parameters:
updateFunction
- a side-effect-free function- Returns:
- the previous value
-
updateAndGet
public CompletableFuture<Integer> updateAndGet(Remote.IntUnaryOperator updateFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function, returning the updated value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.- Specified by:
updateAndGet
in interfaceAsyncAtomicInteger
- Parameters:
updateFunction
- a side-effect-free function- Returns:
- the updated value
-
updateAndGet
public CompletableFuture<Integer> updateAndGet(IntUnaryOperator updateFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function, returning the updated value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.- Specified by:
updateAndGet
in interfaceAsyncAtomicInteger
- Parameters:
updateFunction
- a side-effect-free function- Returns:
- the updated value
-
getAndAccumulate
public CompletableFuture<Integer> getAndAccumulate(int x, Remote.IntBinaryOperator accumulatorFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function to the current and given values, returning the previous value.The function should beside-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value as its first argument, and the given update as the second argument.
- Specified by:
getAndAccumulate
in interfaceAsyncAtomicInteger
- Parameters:
x
- the update valueaccumulatorFunction
- a side-effect-free function of two arguments- Returns:
- the previous value
-
getAndAccumulate
public CompletableFuture<Integer> getAndAccumulate(int nUpdate, IntBinaryOperator accumulatorFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function to the current and given values, returning the previous value.The function should beside-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value as its first argument, and the given update as the second argument.
- Specified by:
getAndAccumulate
in interfaceAsyncAtomicInteger
- Parameters:
nUpdate
- the update valueaccumulatorFunction
- a side-effect-free function of two arguments- Returns:
- the previous value
-
accumulateAndGet
public CompletableFuture<Integer> accumulateAndGet(int nUpdate, Remote.IntBinaryOperator accumulatorFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function to the current and given values, returning the updated value.The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value as its first argument, and the given update as the second argument.
- Specified by:
accumulateAndGet
in interfaceAsyncAtomicInteger
- Parameters:
nUpdate
- the update valueaccumulatorFunction
- a side-effect-free function of two arguments- Returns:
- the updated value
-
accumulateAndGet
public CompletableFuture<Integer> accumulateAndGet(int nUpdate, IntBinaryOperator accumulatorFunction)
Description copied from interface:AsyncAtomicInteger
Atomically updates the current value with the results of applying the given function to the current and given values, returning the updated value.The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value as its first argument, and the given update as the second argument.
- Specified by:
accumulateAndGet
in interfaceAsyncAtomicInteger
- Parameters:
nUpdate
- the update valueaccumulatorFunction
- a side-effect-free function of two arguments- Returns:
- the updated value
-
compareAndExchange
public CompletableFuture<Integer> compareAndExchange(int nExpectedValue, int nNewValue)
Description copied from interface:AsyncAtomicInteger
Atomically sets the value tonewValue
if the current value, referred to as the witness value,== expectedValue
.- Specified by:
compareAndExchange
in interfaceAsyncAtomicInteger
- Parameters:
nExpectedValue
- the expected valuenNewValue
- the new value- Returns:
- the witness value, which will be the same as the expected value if successful
-
intValue
public CompletableFuture<Integer> intValue()
Description copied from interface:AsyncAtomicInteger
Returns the current value of thisAsyncAtomicInteger
as anint
.- Specified by:
intValue
in interfaceAsyncAtomicInteger
- Returns:
- the numeric value represented by this object
-
longValue
public CompletableFuture<Long> longValue()
Description copied from interface:AsyncAtomicInteger
Returns the current value of thisAsyncAtomicInteger
as along
after a widening primitive conversion.- Specified by:
longValue
in interfaceAsyncAtomicInteger
- Returns:
- the numeric value represented by this object after conversion
to type
long
-
floatValue
public CompletableFuture<Float> floatValue()
Description copied from interface:AsyncAtomicInteger
Returns the current value of thisAsyncAtomicInteger
as afloat
after a widening primitive conversion.- Specified by:
floatValue
in interfaceAsyncAtomicInteger
- Returns:
- the numeric value represented by this object after conversion
to type
float
-
doubleValue
public CompletableFuture<Double> doubleValue()
Description copied from interface:AsyncAtomicInteger
Returns the current value of thisAsyncAtomicInteger
as adouble
after a widening primitive conversion.- Specified by:
doubleValue
in interfaceAsyncAtomicInteger
- Returns:
- the numeric value represented by this object after conversion
to type
double
-
byteValue
public CompletableFuture<Byte> byteValue()
Description copied from interface:AsyncAtomicInteger
Returns the current value of thisAsyncAtomicInteger
as abyte
after a narrowing primitive conversion.- Specified by:
byteValue
in interfaceAsyncAtomicInteger
- Returns:
- the numeric value represented by this object after conversion
to type
byte
-
shortValue
public CompletableFuture<Short> shortValue()
Description copied from interface:AsyncAtomicInteger
Returns the current value of thisAsyncAtomicInteger
as ashort
after a narrowing primitive conversion.- Specified by:
shortValue
in interfaceAsyncAtomicInteger
- Returns:
- the numeric value represented by this object after conversion
to type
short
-
-