Search in sources :

Example 1 with ComputeIfAbsentCommand

use of org.infinispan.commands.write.ComputeIfAbsentCommand in project infinispan by infinispan.

the class SingleKeyBackupWriteCommand method createWriteCommand.

@Override
WriteCommand createWriteCommand() {
    DataWriteCommand command;
    switch(operation) {
        case REMOVE:
            command = new RemoveCommand(key, null, segmentId, getFlags(), getCommandInvocationId());
            break;
        case WRITE:
            command = EnumUtil.containsAny(getFlags(), FlagBitSets.IRAC_UPDATE) ? new IracPutKeyValueCommand(key, segmentId, getCommandInvocationId(), valueOrFunction, metadata, internalMetadata) : new PutKeyValueCommand(key, valueOrFunction, false, metadata, segmentId, getFlags(), getCommandInvocationId());
            break;
        case COMPUTE:
            command = new ComputeCommand(key, (BiFunction) valueOrFunction, false, segmentId, getFlags(), getCommandInvocationId(), metadata);
            break;
        case REPLACE:
            command = new ReplaceCommand(key, null, valueOrFunction, metadata, segmentId, getFlags(), getCommandInvocationId());
            break;
        case REMOVE_EXPIRED:
            // Doesn't matter if it is max idle or not - important thing is that it raises expired event
            command = new RemoveExpiredCommand(key, valueOrFunction, null, false, segmentId, getFlags(), getCommandInvocationId());
            break;
        case COMPUTE_IF_PRESENT:
            command = new ComputeCommand(key, (BiFunction) valueOrFunction, true, segmentId, getFlags(), getCommandInvocationId(), metadata);
            break;
        case COMPUTE_IF_ABSENT:
            command = new ComputeIfAbsentCommand(key, (Function) valueOrFunction, segmentId, getFlags(), getCommandInvocationId(), metadata);
            break;
        default:
            throw new IllegalStateException("Unknown operation " + operation);
    }
    command.setInternalMetadata(internalMetadata);
    return command;
}
Also used : RemoveCommand(org.infinispan.commands.write.RemoveCommand) ComputeCommand(org.infinispan.commands.write.ComputeCommand) BiFunction(java.util.function.BiFunction) Function(java.util.function.Function) DataWriteCommand(org.infinispan.commands.write.DataWriteCommand) BiFunction(java.util.function.BiFunction) ReplaceCommand(org.infinispan.commands.write.ReplaceCommand) RemoveExpiredCommand(org.infinispan.commands.write.RemoveExpiredCommand) ComputeIfAbsentCommand(org.infinispan.commands.write.ComputeIfAbsentCommand) IracPutKeyValueCommand(org.infinispan.commands.write.IracPutKeyValueCommand) IracPutKeyValueCommand(org.infinispan.commands.write.IracPutKeyValueCommand) PutKeyValueCommand(org.infinispan.commands.write.PutKeyValueCommand)

Example 2 with ComputeIfAbsentCommand

use of org.infinispan.commands.write.ComputeIfAbsentCommand in project infinispan by infinispan.

the class CacheImpl method computeIfAbsentAsyncInternal.

CompletableFuture<V> computeIfAbsentAsyncInternal(K key, Function<? super K, ? extends V> mappingFunction, Metadata metadata, long flags, ContextBuilder contextBuilder) {
    assertKeyNotNull(key);
    assertFunctionNotNull(mappingFunction);
    ComputeIfAbsentCommand command = commandsFactory.buildComputeIfAbsentCommand(key, mappingFunction, keyPartitioner.getSegment(key), metadata, flags);
    return invocationHelper.invokeAsync(contextBuilder, command, 1);
}
Also used : ComputeIfAbsentCommand(org.infinispan.commands.write.ComputeIfAbsentCommand)

Example 3 with ComputeIfAbsentCommand

use of org.infinispan.commands.write.ComputeIfAbsentCommand in project infinispan by infinispan.

the class CacheImpl method computeIfAbsentInternal.

V computeIfAbsentInternal(K key, Function<? super K, ? extends V> mappingFunction, Metadata metadata, long flags, ContextBuilder contextBuilder) {
    assertKeyNotNull(key);
    assertFunctionNotNull(mappingFunction);
    ComputeIfAbsentCommand command = commandsFactory.buildComputeIfAbsentCommand(key, mappingFunction, keyPartitioner.getSegment(key), metadata, flags);
    return invocationHelper.invoke(contextBuilder, command, 1);
}
Also used : ComputeIfAbsentCommand(org.infinispan.commands.write.ComputeIfAbsentCommand)

Aggregations

ComputeIfAbsentCommand (org.infinispan.commands.write.ComputeIfAbsentCommand)3 BiFunction (java.util.function.BiFunction)1 Function (java.util.function.Function)1 ComputeCommand (org.infinispan.commands.write.ComputeCommand)1 DataWriteCommand (org.infinispan.commands.write.DataWriteCommand)1 IracPutKeyValueCommand (org.infinispan.commands.write.IracPutKeyValueCommand)1 PutKeyValueCommand (org.infinispan.commands.write.PutKeyValueCommand)1 RemoveCommand (org.infinispan.commands.write.RemoveCommand)1 RemoveExpiredCommand (org.infinispan.commands.write.RemoveExpiredCommand)1 ReplaceCommand (org.infinispan.commands.write.ReplaceCommand)1