Search in sources :

Example 11 with AtomicReferenceContainer

use of com.hazelcast.concurrent.atomicreference.AtomicReferenceContainer in project hazelcast by hazelcast.

the class AlterAndGetOperation method run.

@Override
public void run() throws Exception {
    NodeEngine nodeEngine = getNodeEngine();
    IFunction f = nodeEngine.toObject(function);
    AtomicReferenceContainer atomicReferenceContainer = getReferenceContainer();
    Data originalData = atomicReferenceContainer.get();
    Object input = nodeEngine.toObject(originalData);
    //noinspection unchecked
    Object output = f.apply(input);
    Data serializedOutput = nodeEngine.toData(output);
    shouldBackup = !isEquals(originalData, serializedOutput);
    if (shouldBackup) {
        backup = serializedOutput;
        atomicReferenceContainer.set(backup);
    }
    response = output;
}
Also used : NodeEngine(com.hazelcast.spi.NodeEngine) AtomicReferenceContainer(com.hazelcast.concurrent.atomicreference.AtomicReferenceContainer) Data(com.hazelcast.nio.serialization.Data) IFunction(com.hazelcast.core.IFunction)

Example 12 with AtomicReferenceContainer

use of com.hazelcast.concurrent.atomicreference.AtomicReferenceContainer in project hazelcast by hazelcast.

the class CompareAndSetOperation method run.

@Override
public void run() throws Exception {
    AtomicReferenceContainer atomicReferenceContainer = getReferenceContainer();
    returnValue = atomicReferenceContainer.compareAndSet(expect, update);
    shouldBackup = returnValue;
}
Also used : AtomicReferenceContainer(com.hazelcast.concurrent.atomicreference.AtomicReferenceContainer)

Aggregations

AtomicReferenceContainer (com.hazelcast.concurrent.atomicreference.AtomicReferenceContainer)12 IFunction (com.hazelcast.core.IFunction)4 Data (com.hazelcast.nio.serialization.Data)4 NodeEngine (com.hazelcast.spi.NodeEngine)4 AtomicReferenceService (com.hazelcast.concurrent.atomicreference.AtomicReferenceService)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1