All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.commands.write.BackupAckCommand Maven / Gradle / Ivy

There is a newer version: 9.1.7.Final
Show newest version
package org.infinispan.commands.write;

import org.infinispan.commands.CommandInvocationId;
import org.infinispan.commands.remote.BaseRpcCommand;
import org.infinispan.util.ByteString;
import org.infinispan.util.concurrent.CommandAckCollector;
import org.infinispan.util.concurrent.CompletableFutures;

import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.concurrent.CompletableFuture;

/**
 * A command that represents an acknowledge sent by a backup owner to the originator.
 * 

* The acknowledge signals a successful execution of the operation. * * @author Pedro Ruivo * @since 9.0 */ public class BackupAckCommand extends BaseRpcCommand { public static final byte COMMAND_ID = 2; private CommandInvocationId commandInvocationId; private CommandAckCollector commandAckCollector; private int topologyId; public BackupAckCommand() { super(null); } public BackupAckCommand(ByteString cacheName) { super(cacheName); } public BackupAckCommand(ByteString cacheName, CommandInvocationId commandInvocationId, int topologyId) { super(cacheName); this.commandInvocationId = commandInvocationId; this.topologyId = topologyId; } @Override public CompletableFuture invokeAsync() throws Throwable { commandAckCollector.backupAck(commandInvocationId, getOrigin(), topologyId); return CompletableFutures.completedNull(); } @Override public byte getCommandId() { return COMMAND_ID; } @Override public boolean isReturnValueExpected() { return false; } @Override public void writeTo(ObjectOutput output) throws IOException { CommandInvocationId.writeTo(output, commandInvocationId); output.writeInt(topologyId); } @Override public void readFrom(ObjectInput input) throws IOException, ClassNotFoundException { commandInvocationId = CommandInvocationId.readFrom(input); topologyId = input.readInt(); } public void setCommandAckCollector(CommandAckCollector commandAckCollector) { this.commandAckCollector = commandAckCollector; } @Override public String toString() { return "BackupAckCommand{" + "commandInvocationId=" + commandInvocationId + ", topologyId=" + topologyId + '}'; } }