X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fcommands%2FIncrementTransactionSequenceRequest.java;h=5695860e17cd7b0ba48d3dada038baf63c7620d8;hb=HEAD;hp=ffc0a68b8912481bfeca882545ff3626469025e0;hpb=4dc70853503713e7ed729815e2ce7bfd750b2bd3;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java index ffc0a68b89..5695860e17 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/IncrementTransactionSequenceRequest.java @@ -7,28 +7,55 @@ */ package org.opendaylight.controller.cluster.access.commands; +import static com.google.common.base.Preconditions.checkArgument; + import akka.actor.ActorRef; -import com.google.common.base.Preconditions; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.yangtools.concepts.WritableObjects; /** * A blank transaction request. This is used to provide backfill requests in converted retransmit scenarios, such as * when a initial request to a transaction (such as a {@link ReadTransactionRequest}) is satisfied by the backend * before the need to replay the transaction to a different remote backend. - * - * @author Robert Varga */ public final class IncrementTransactionSequenceRequest extends AbstractReadTransactionRequest { + interface SerialForm extends AbstractReadTransactionRequest.SerialForm { + @Override + default void writeExternal(final ObjectOutput out, final IncrementTransactionSequenceRequest msg) + throws IOException { + AbstractReadTransactionRequest.SerialForm.super.writeExternal(out, msg); + WritableObjects.writeLong(out, msg.getIncrement()); + } + + @Override + default IncrementTransactionSequenceRequest readExternal(final ObjectInput in, + final TransactionIdentifier target, final long sequence, final ActorRef replyTo, + final boolean snapshotOnly) throws IOException { + return new IncrementTransactionSequenceRequest(target, sequence, replyTo, snapshotOnly, + WritableObjects.readLong(in)); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; private final long increment; + public IncrementTransactionSequenceRequest(final IncrementTransactionSequenceRequest request, + final ABIVersion version) { + super(request, version); + increment = request.increment; + } + public IncrementTransactionSequenceRequest(final TransactionIdentifier identifier, final long sequence, final ActorRef replyTo, final boolean snapshotOnly, final long increment) { super(identifier, sequence, replyTo, snapshotOnly); - Preconditions.checkArgument(increment >= 0); + checkArgument(increment >= 0, "Unexpected increment %s", increment); this.increment = increment; } @@ -42,12 +69,12 @@ public final class IncrementTransactionSequenceRequest extends } @Override - protected IncrementTransactionSequenceRequestProxyV1 externalizableProxy(final ABIVersion version) { - return new IncrementTransactionSequenceRequestProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return new ITSR(this); } @Override protected IncrementTransactionSequenceRequest cloneAsVersion(final ABIVersion targetVersion) { - return this; + return new IncrementTransactionSequenceRequest(this, targetVersion); } }