X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-client%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fclient%2FReconnectForwarder.java;h=8217b72861ea6f9c58f4af47ea9f229c52f902ee;hb=2be60a19ed99fe7d33a24f7db8af3510f7ea835f;hp=25e5d6edfebc8acabb10347480a5c6f01ff19a5e;hpb=b4d95acff78952020e9fbde4372d13b461fd7469;p=controller.git diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ReconnectForwarder.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ReconnectForwarder.java index 25e5d6edfe..8217b72861 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ReconnectForwarder.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ReconnectForwarder.java @@ -7,12 +7,7 @@ */ package org.opendaylight.controller.cluster.access.client; -import com.google.common.base.Preconditions; -import java.util.function.Consumer; -import org.opendaylight.controller.cluster.access.concepts.Request; -import org.opendaylight.controller.cluster.access.concepts.Response; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static java.util.Objects.requireNonNull; /** * Forwarder class responsible for routing requests from the previous connection incarnation back to the originator, @@ -21,20 +16,25 @@ import org.slf4j.LoggerFactory; * @author Robert Varga */ public abstract class ReconnectForwarder { - static final Logger LOG = LoggerFactory.getLogger(ReconnectForwarder.class); // Visible for subclass method handle private final AbstractReceivingClientConnection successor; protected ReconnectForwarder(final AbstractReceivingClientConnection successor) { - this.successor = Preconditions.checkNotNull(successor); + this.successor = requireNonNull(successor); } - protected final void sendToSuccessor(final Request request, final Consumer> callback) { - successor.sendRequest(request, callback); + protected final void sendToSuccessor(final ConnectionEntry entry) { + successor.sendRequest(entry.getRequest(), entry.getCallback()); + } + + protected final void replayToSuccessor(final ConnectionEntry entry) { + successor.enqueueRequest(entry.getRequest(), entry.getCallback(), entry.getEnqueuedTicks()); } protected abstract void forwardEntry(ConnectionEntry entry, long now); + protected abstract void replayEntry(ConnectionEntry entry, long now); + final AbstractReceivingClientConnection successor() { return successor; }