public interface IAtomicLong extends DistributedObject
AtomicLong.
 
 Asynchronous variants of all methods have been introduced in version 3.7.
 Async methods immediately return a CompletionStage which can be used to
 chain further computation stages or can be converted to a CompletableFuture
 from which the operation's result can be obtained in a blocking manner. For example:
 
 CompletionStage<Long> stage = atomicLong.addAndGetAsync(13);
 stage.whenCompleteAsync((response, t) -> {
     if (t == null) {
         // do something with the result
     } else {
         // handle failure
     }
 });
 
 
 Actions supplied for dependent completions of default non-async methods and async methods
 without an explicit Executor argument are performed
 by the ForkJoinPool.commonPool() (unless it does not
 support a parallelism level of at least 2, in which case a new Thread is
 created per task).
 
 IAtomicLong is accessed via CPSubsystem.getAtomicLong(String).
 It works on top of the Raft consensus algorithm. It offers linearizability during crash
 failures and network partitions. It is CP with respect to the CAP principle.
 If a network partition occurs, it remains available on at most one side
 of the partition.
 
 IAtomicLong impl does not offer exactly-once / effectively-once
 execution semantics. It goes with at-least-once execution semantics
 by default and can cause an API call to be committed multiple times
 in case of CP member failures. It can be tuned to offer at-most-once
 execution semantics. Please see
 CPSubsystemConfig.setFailOnIndeterminateOperationState(boolean)
IAtomicReference| Modifier and Type | Method and Description | 
|---|---|
| long | addAndGet(long delta)Atomically adds the given value to the current value. | 
| CompletionStage<Long> | addAndGetAsync(long delta)Atomically adds the given value to the current value. | 
| void | alter(IFunction<Long,Long> function)Alters the currently stored value by applying a function on it. | 
| long | alterAndGet(IFunction<Long,Long> function)Alters the currently stored value by applying a function on it and
 gets the result. | 
| CompletionStage<Long> | alterAndGetAsync(IFunction<Long,Long> function)Alters the currently stored value by applying a function on it and gets
 the result. | 
| CompletionStage<Void> | alterAsync(IFunction<Long,Long> function)Alters the currently stored value by applying a function on it. | 
| <R> R | apply(IFunction<Long,R> function)Applies a function on the value, the actual stored value will not change. | 
| <R> CompletionStage<R> | applyAsync(IFunction<Long,R> function)Applies a function on the value, the actual stored value will not
 change. | 
| boolean | compareAndSet(long expect,
             long update)Atomically sets the value to the given updated value
 only if the current value  ==the expected value. | 
| CompletionStage<Boolean> | compareAndSetAsync(long expect,
                  long update)Atomically sets the value to the given updated value
 only if the current value  ==the expected value. | 
| long | decrementAndGet()Atomically decrements the current value by one. | 
| CompletionStage<Long> | decrementAndGetAsync()Atomically decrements the current value by one. | 
| long | get()Gets the current value. | 
| long | getAndAdd(long delta)Atomically adds the given value to the current value. | 
| CompletionStage<Long> | getAndAddAsync(long delta)Atomically adds the given value to the current value. | 
| long | getAndAlter(IFunction<Long,Long> function)Alters the currently stored value by applying a function on it on and
 gets the old value. | 
| CompletionStage<Long> | getAndAlterAsync(IFunction<Long,Long> function)Alters the currently stored value by applying a function on it on and
 gets the old value. | 
| long | getAndIncrement()Atomically increments the current value by one. | 
| CompletionStage<Long> | getAndIncrementAsync()Atomically increments the current value by one. | 
| long | getAndSet(long newValue)Atomically sets the given value and returns the old value. | 
| CompletionStage<Long> | getAndSetAsync(long newValue)Atomically sets the given value and returns the old value. | 
| CompletionStage<Long> | getAsync()Gets the current value. | 
| String | getName()Returns the name of this IAtomicLong instance. | 
| long | incrementAndGet()Atomically increments the current value by one. | 
| CompletionStage<Long> | incrementAndGetAsync()Atomically increments the current value by one. | 
| void | set(long newValue)Atomically sets the given value. | 
| CompletionStage<Void> | setAsync(long newValue)Atomically sets the given value. | 
destroy, getPartitionKey, getServiceNameString getName()
getName in interface DistributedObjectlong addAndGet(long delta)
delta - the value to add to the current valueboolean compareAndSet(long expect,
                      long update)
== the expected value.expect - the expected valueupdate - the new valuetrue if successful; or false if the actual value
 was not equal to the expected value.long decrementAndGet()
long get()
long getAndAdd(long delta)
delta - the value to add to the current valuelong getAndSet(long newValue)
newValue - the new valuelong incrementAndGet()
long getAndIncrement()
void set(long newValue)
newValue - the new valuevoid alter(IFunction<Long,Long> function)
function - the function applied to the currently stored valueIllegalArgumentException - if function is nulllong alterAndGet(IFunction<Long,Long> function)
function - the function applied to the currently stored valueIllegalArgumentException - if function is nulllong getAndAlter(IFunction<Long,Long> function)
function - the function applied to the currently stored valueIllegalArgumentException - if function is null<R> R apply(IFunction<Long,R> function)
R - the result type of the functionfunction - the function applied to the value, the value is not changedIllegalArgumentException - if function is nullCompletionStage<Long> addAndGetAsync(long delta)
 This method will dispatch a request and return immediately a
 CompletionStage.
 
The operations result can be obtained in a blocking way, or a callback can be provided for execution upon completion, as demonstrated in the following examples:
CompletionStage<Long> stage = atomicLong.addAndGetAsync(13); // do something else, then read the result // this method will block until the result is available Long result = stage.toCompletableFuture().get();
 CompletionStage<Long> stage = atomicLong.addAndGetAsync(13);
 stage.whenCompleteAsync((response, t) -> {
     if (t == null) {
         // do something with the result
     } else {
         // handle failure
     }
 });
 delta - the value to addCompletionStage bearing the responseCompletionStage<Boolean> compareAndSetAsync(long expect, long update)
== the expected value.
 
 This method will dispatch a request and return immediately a
 CompletionStage.
expect - the expected valueupdate - the new valueCompletionStage with value true if successful;
 or false if the actual value was not equal to the expected valueCompletionStage<Long> decrementAndGetAsync()
 This method will dispatch a request and return immediately a
 CompletionStage.
CompletionStage with the updated valueCompletionStage<Long> getAsync()
CompletionStage.CompletionStage with the current valueCompletionStage<Long> getAndAddAsync(long delta)
 This method will dispatch a request and return immediately a
 CompletionStage.
delta - the value to addCompletionStage with the old value before the additionCompletionStage<Long> getAndSetAsync(long newValue)
 This method will dispatch a request and return immediately a
 CompletionStage.
newValue - the new valueCompletionStage with the old valueCompletionStage<Long> incrementAndGetAsync()
 This method will dispatch a request and return immediately a
 CompletionStage.
CompletionStage with the updated valueCompletionStage<Long> getAndIncrementAsync()
 This method will dispatch a request and return immediately a
 CompletionStage.
CompletionStage with the old valueCompletionStage<Void> setAsync(long newValue)
 This method will dispatch a request and return immediately a
 CompletionStage.
newValue - the new valueCompletionStageCompletionStage<Void> alterAsync(IFunction<Long,Long> function)
 This method will dispatch a request and return immediately a
 CompletionStage.
function - the functionCompletionStage with the new valueIllegalArgumentException - if function is nullCompletionStage<Long> alterAndGetAsync(IFunction<Long,Long> function)
 This method will dispatch a request and return immediately a
 CompletionStage.
function - the functionCompletionStage with the new valueIllegalArgumentException - if function is nullCompletionStage<Long> getAndAlterAsync(IFunction<Long,Long> function)
 This method will dispatch a request and return immediately a
 CompletionStage.
function - the functionCompletionStage with the old valueIllegalArgumentException - if function is null<R> CompletionStage<R> applyAsync(IFunction<Long,R> function)
 This method will dispatch a request and return immediately a
 CompletionStage. For example:
 
 class IsOneFunction implements IFunction<Long, Boolean> {
     @Override
     public Boolean apply(Long input) {
         return input.equals(1L);
     }
 }
 CompletionStage<Boolean> stage = atomicLong.applyAsync(new IsOneFunction());
 stage.whenCompleteAsync((response, t) -> {
    if (t == null) {
        // do something with the response
    } else {
       // handle failure
    }
 });
 R - the result type of the functionfunction - the functionCompletionStage with the result of the function applicationIllegalArgumentException - if function is nullCopyright © 2020 Hazelcast, Inc.. All rights reserved.