Search in sources :

Example 1 with ComputeCommand

use of org.infinispan.commands.write.ComputeCommand 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 ComputeCommand

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

the class MigrationTask method writeToDestinationCache.

private Object writeToDestinationCache(Entry<Object, MetadataValue<Object>> entry, Metadata metadata, DataConversion keyDataConversion, DataConversion valueDataConversion) {
    Object key = keyDataConversion.toStorage(entry.getKey());
    Object value = valueDataConversion.toStorage(entry.getValue().getValue());
    int segment = keyPartitioner.getSegment(key);
    long flags = EnumUtil.bitSetOf(Flag.SKIP_CACHE_LOAD, Flag.ROLLING_UPGRADE);
    ComputeCommand computeCommand = commandsFactory.buildComputeCommand(key, new EntryWriter<>(value), false, segment, metadata, flags);
    InvocationContext context = invocationHelper.createInvocationContextWithImplicitTransaction(1, true);
    return invocationHelper.invoke(context, computeCommand);
}
Also used : ComputeCommand(org.infinispan.commands.write.ComputeCommand) InvocationContext(org.infinispan.context.InvocationContext)

Example 3 with ComputeCommand

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

the class CacheImpl method computeAsyncInternal.

CompletableFuture<V> computeAsyncInternal(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction, boolean computeIfPresent, Metadata metadata, long flags, ContextBuilder contextBuilder) {
    assertKeyNotNull(key);
    assertFunctionNotNull(remappingFunction);
    ComputeCommand command = commandsFactory.buildComputeCommand(key, remappingFunction, computeIfPresent, keyPartitioner.getSegment(key), metadata, flags);
    return invocationHelper.invokeAsync(contextBuilder, command, 1);
}
Also used : ComputeCommand(org.infinispan.commands.write.ComputeCommand)

Example 4 with ComputeCommand

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

the class CacheImpl method computeInternal.

V computeInternal(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction, boolean computeIfPresent, Metadata metadata, long flags, ContextBuilder contextBuilder) {
    assertKeyNotNull(key);
    assertFunctionNotNull(remappingFunction);
    ComputeCommand command = commandsFactory.buildComputeCommand(key, remappingFunction, computeIfPresent, keyPartitioner.getSegment(key), metadata, flags);
    return invocationHelper.invoke(contextBuilder, command, 1);
}
Also used : ComputeCommand(org.infinispan.commands.write.ComputeCommand)

Aggregations

ComputeCommand (org.infinispan.commands.write.ComputeCommand)4 BiFunction (java.util.function.BiFunction)1 Function (java.util.function.Function)1 ComputeIfAbsentCommand (org.infinispan.commands.write.ComputeIfAbsentCommand)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 InvocationContext (org.infinispan.context.InvocationContext)1