*/
package org.opendaylight.controller.cluster.access.concepts;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serial;
-import org.opendaylight.yangtools.concepts.WritableObjects;
-
-abstract class AbstractResponseEnvelopeProxy<T extends Response<?, ?>> extends AbstractEnvelopeProxy<T> {
- @Serial
+abstract class AbstractResponseEnvelopeProxy<T extends Response<?, ?>, E extends ResponseEnvelope<T>>
+ extends AbstractEnvelopeProxy<T, E> {
+ @java.io.Serial
private static final long serialVersionUID = 1L;
- private long executionTimeNanos;
-
AbstractResponseEnvelopeProxy() {
// for Externalizable
}
- AbstractResponseEnvelopeProxy(final ResponseEnvelope<T> envelope) {
+ AbstractResponseEnvelopeProxy(final E 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
- public final void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
- super.readExternal(in);
- executionTimeNanos = WritableObjects.readLong(in);
- }
-
- @Override
- final ResponseEnvelope<T> createEnvelope(final T message, final long sessionId, final long txSequence) {
- return createEnvelope(message, sessionId, txSequence, executionTimeNanos);
- }
-
- @SuppressWarnings("checkstyle:hiddenField")
- abstract ResponseEnvelope<T> createEnvelope(T message, long sessionId, long txSequence, long executionTimeNanos);
}