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%2Fconcepts%2FAbstractResponseEnvelopeProxy.java;fp=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fconcepts%2FAbstractResponseEnvelopeProxy.java;h=1dbb86bb2f073de2e0d17223870dbe57cfcdfa51;hb=cd2a6fa0d8fa6281be28d3c7b9828ecf4e932811;hp=526c97ce32b3d5dd2eabcc0443fe9efdcc39866b;hpb=32b322afd58f120a78208c939a01422aa224d0cf;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java index 526c97ce32..1dbb86bb2f 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractResponseEnvelopeProxy.java @@ -7,17 +7,41 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import org.opendaylight.yangtools.concepts.WritableObjects; + abstract class AbstractResponseEnvelopeProxy> extends AbstractEnvelopeProxy { private static final long serialVersionUID = 1L; - protected AbstractResponseEnvelopeProxy() { + private long executionTimeNanos; + + AbstractResponseEnvelopeProxy() { // for Externalizable } AbstractResponseEnvelopeProxy(final ResponseEnvelope envelope) { super(envelope); + this.executionTimeNanos = envelope.getExecutionTimeNanos(); + } + + @Override + public final void writeExternal(final ObjectOutput out) throws IOException { + super.writeExternal(out); + WritableObjects.writeLong(out, executionTimeNanos); } @Override - abstract ResponseEnvelope createEnvelope(T message, long sequence, long retry); + public final void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { + super.readExternal(in); + executionTimeNanos = WritableObjects.readLong(in); + } + + @Override + final ResponseEnvelope createEnvelope(final T message, final long sessionId, final long txSequence) { + return createEnvelope(message, sessionId, txSequence, executionTimeNanos); + } + + abstract ResponseEnvelope createEnvelope(T message, long sessionId, long txSequence, long executionTimeNanos); }