import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; import com.hazelcast.spi.BackupAwareOperation; import com.hazelcast.spi.Operation; import java.io.IOException; class IncOperation extends Operation implements BackupAwareOperation { private String objectId; private int amount; private int returnValue; @SuppressWarnings("unused") public IncOperation() { } IncOperation(String objectId, int amount) { this.amount = amount; this.objectId = objectId; } @Override public void run() { System.out.println("Executing " + objectId + ".inc() on: " + getNodeEngine().getThisAddress()); CounterService service = getService(); Container container = service.containers[getPartitionId()]; returnValue = container.inc(objectId, amount); } @Override public int getAsyncBackupCount() { return 0; } @Override public int getSyncBackupCount() { return 1; } @Override public boolean shouldBackup() { return true; } @Override public Operation getBackupOperation() { return new IncBackupOperation(objectId, amount); } @Override public Object getResponse() { return returnValue; } @Override protected void writeInternal(ObjectDataOutput out) throws IOException { super.writeInternal(out); out.writeUTF(objectId); out.writeInt(amount); } @Override protected void readInternal(ObjectDataInput in) throws IOException { super.readInternal(in); objectId = in.readUTF(); amount = in.readInt(); } }