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%2FResponseEnvelope.java;h=7936baa1696059b184b8ff55f548ac5fd6e9229b;hb=refs%2Fchanges%2F86%2F48686%2F16;hp=9f998e7fac49b81d71e97487ed306c7205a0dda8;hpb=9b4f21460c6dcb10c381df631d064d05de16546c;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java index 9f998e7fac..7936baa169 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java @@ -7,10 +7,29 @@ */ package org.opendaylight.controller.cluster.access.concepts; +import com.google.common.base.Preconditions; + public abstract class ResponseEnvelope> extends Envelope { private static final long serialVersionUID = 1L; - ResponseEnvelope(final T message, final long sessionId, final long txSequence) { + private final long executionTimeNanos; + + ResponseEnvelope(final T message, final long sessionId, final long txSequence, final long executionTimeNanos) { super(message, sessionId, txSequence); + Preconditions.checkArgument(executionTimeNanos >= 0); + this.executionTimeNanos = executionTimeNanos; } + + /** + * Return the time the request took to execute in nanoseconds. This may not reflect the actual CPU time, but rather + * a measure of the complexity involved in servicing the original request. + * + * @return Time the request took to execute in nanoseconds + */ + public final long getExecutionTimeNanos() { + return executionTimeNanos; + } + + @Override + abstract AbstractResponseEnvelopeProxy createProxy(); }