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%2FRequestEnvelope.java;h=e8983697cf659e56ad99fa347278d8c0df58e596;hb=HEAD;hp=1c6e72c59a6596ea498cad2dbc432fd63934101b;hpb=9b4f21460c6dcb10c381df631d064d05de16546c;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java index 1c6e72c59a..e8983697cf 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/RequestEnvelope.java @@ -10,6 +10,7 @@ package org.opendaylight.controller.cluster.access.concepts; import akka.actor.ActorRef; public final class RequestEnvelope extends Envelope> { + @java.io.Serial private static final long serialVersionUID = 1L; public RequestEnvelope(final Request message, final long sessionId, final long txSequence) { @@ -17,18 +18,20 @@ public final class RequestEnvelope extends Envelope> { } @Override - RequestEnvelopeProxy createProxy() { - return new RequestEnvelopeProxy(this); + RE createProxy() { + return new RE(this); } /** * Respond to this envelope with a {@link RequestFailure} caused by specified {@link RequestException}. * * @param cause Cause of this {@link RequestFailure} + * @param executionTimeNanos Time to execute the request, in nanoseconds * @throws NullPointerException if cause is null */ - public void sendFailure(final RequestException cause) { - sendResponse(new FailureEnvelope(getMessage().toRequestFailure(cause), getSessionId(), getTxSequence())); + public void sendFailure(final RequestException cause, final long executionTimeNanos) { + sendResponse(new FailureEnvelope(getMessage().toRequestFailure(cause), getSessionId(), getTxSequence(), + executionTimeNanos)); } /** @@ -37,8 +40,19 @@ public final class RequestEnvelope extends Envelope> { * @param success Successful response * @throws NullPointerException if success is null */ - public void sendSuccess(final RequestSuccess success) { - sendResponse(new SuccessEnvelope(success, getSessionId(), getTxSequence())); + public void sendSuccess(final RequestSuccess success, final long executionTimeNanos) { + sendResponse(newSuccessEnvelope(success, executionTimeNanos)); + } + + /** + * Creates a successful ResponseEnvelope that wraps the given successful Request response message. + * + * @param success the successful Request response message + * @param executionTimeNanos the execution time of the request + * @return a {@link ResponseEnvelope} instance + */ + public ResponseEnvelope newSuccessEnvelope(final RequestSuccess success, final long executionTimeNanos) { + return new SuccessEnvelope(success, getSessionId(), getTxSequence(), executionTimeNanos); } private void sendResponse(final ResponseEnvelope envelope) {