public interface IAtomicReference<E> extends DistributedObject
java.util.concurrent.atomic.AtomicReference
.
Asynchronous variants have been introduced in version 3.7.
Async methods return immediately an ICompletableFuture
from which the operation's result
can be obtained either in a blocking manner or by registering a callback to be executed
upon completion. For example:
ICompletableFuture<E> future = atomicRef.getAsync(); future.andThen(new ExecutionCallback<E>() { void onResponse(Long response) { // do something with the result } void onFailure(Throwable t) { // handle failure } });
In split-brain scenarios, the atomicity of the reference is lost. It is possible for different references to
exist in different cluster partitions. When the split-brain heals, Hazelcast employs a largest cluster wins
policy to decide which of the IAtomicReference
to use. When the cluster size are equal, a random winner
is chosen.
Supports Quorum QuorumConfig
since 3.10 in cluster versions 3.10 and higher.
IAtomicLong
Modifier and Type | Method and Description |
---|---|
void |
alter(IFunction<E,E> function)
Alters the currently stored reference by applying a function on it.
|
E |
alterAndGet(IFunction<E,E> function)
Alters the currently stored reference by applying a function on it and gets the result.
|
ICompletableFuture<E> |
alterAndGetAsync(IFunction<E,E> function)
Alters the currently stored reference by applying a function on it and gets the result.
|
ICompletableFuture<Void> |
alterAsync(IFunction<E,E> function)
Alters the currently stored reference by applying a function on it.
|
<R> R |
apply(IFunction<E,R> function)
Applies a function on the value, the actual stored value will not change.
|
<R> ICompletableFuture<R> |
applyAsync(IFunction<E,R> function)
Applies a function on the value, the actual stored value will not change.
|
void |
clear()
Clears the current stored reference.
|
ICompletableFuture<Void> |
clearAsync()
Clears the current stored reference.
|
boolean |
compareAndSet(E expect,
E update)
Atomically sets the value to the given updated value
only if the current value
== the expected value. |
ICompletableFuture<Boolean> |
compareAndSetAsync(E expect,
E update)
Atomically sets the value to the given updated value
only if the current value
== the expected value. |
boolean |
contains(E value)
Checks if the reference contains the value.
|
ICompletableFuture<Boolean> |
containsAsync(E expected)
Checks if the reference contains the value.
|
E |
get()
Gets the current value.
|
E |
getAndAlter(IFunction<E,E> function)
Alters the currently stored reference by applying a function on it on and gets the old value.
|
ICompletableFuture<E> |
getAndAlterAsync(IFunction<E,E> function)
Alters the currently stored reference by applying a function on it on and gets the old value.
|
E |
getAndSet(E newValue)
Gets the old value and sets the new value.
|
ICompletableFuture<E> |
getAndSetAsync(E newValue)
Gets the value and sets the new value.
|
ICompletableFuture<E> |
getAsync()
Gets the current value.
|
boolean |
isNull()
Checks if the stored reference is null.
|
ICompletableFuture<Boolean> |
isNullAsync()
Checks if the stored reference is null.
|
void |
set(E newValue)
Atomically sets the given value.
|
E |
setAndGet(E update)
Deprecated.
will be removed from Hazelcast 3.4 since it doesn't really serve a purpose.
|
ICompletableFuture<Void> |
setAsync(E newValue)
Atomically sets the given value.
|
destroy, getName, getPartitionKey, getServiceName
boolean compareAndSet(E expect, E update)
==
the expected value.expect
- the expected valueupdate
- the new valueE get()
void set(E newValue)
newValue
- the new valueE getAndSet(E newValue)
newValue
- the new value.E setAndGet(E update)
update
- the new valueboolean isNull()
void clear()
boolean contains(E value)
value
- the value to check (is allowed to be null).void alter(IFunction<E,E> function)
function
- the function that alters the currently stored referenceIllegalArgumentException
- if function is null.E alterAndGet(IFunction<E,E> function)
function
- the function that alters the currently stored referenceIllegalArgumentException
- if function is null.E getAndAlter(IFunction<E,E> function)
function
- the function that alters the currently stored referenceIllegalArgumentException
- if function is null.<R> R apply(IFunction<E,R> function)
function
- the function applied on the value, the stored value does not changeIllegalArgumentException
- if function is null.ICompletableFuture<Boolean> compareAndSetAsync(E expect, E update)
==
the expected value.expect
- the expected valueupdate
- the new valueICompletableFuture<E> getAsync()
ICompletableFuture<Void> setAsync(E newValue)
newValue
- the new valueICompletableFuture<E> getAndSetAsync(E newValue)
newValue
- the new value.ICompletableFuture<Boolean> isNullAsync()
ICompletableFuture<Void> clearAsync()
ICompletableFuture<Boolean> containsAsync(E expected)
expected
- the value to check (is allowed to be null).ICompletableFuture<Void> alterAsync(IFunction<E,E> function)
function
- the functionIllegalArgumentException
- if function is null.ICompletableFuture<E> alterAndGetAsync(IFunction<E,E> function)
function
- the functionIllegalArgumentException
- if function is null.ICompletableFuture<E> getAndAlterAsync(IFunction<E,E> function)
function
- the functionIllegalArgumentException
- if function is null.<R> ICompletableFuture<R> applyAsync(IFunction<E,R> function)
function
- the functionIllegalArgumentException
- if function is null.Copyright © 2018 Hazelcast, Inc.. All rights reserved.