X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-remoterpc-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fremote%2Frpc%2FRemoteRpcImplementation.java;h=a7370490dc7b0a1428150cb46a5e8454c34cd25b;hb=1d0370feb32b84119bf4c570b9e6e9abbe8d9511;hp=45a847f975cfe0debcaa457a59ae862f86e18fd2;hpb=91cbd66f53b89d89e419bf23e6969da1f8df137e;p=controller.git diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcImplementation.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcImplementation.java index 45a847f975..a7370490dc 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcImplementation.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcImplementation.java @@ -5,14 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.remote.rpc; import akka.actor.ActorRef; -import akka.pattern.Patterns; -import akka.util.Timeout; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.FluentFuture; +import com.google.common.util.concurrent.ListenableFuture; import org.opendaylight.controller.remote.rpc.messages.ExecuteRpc; import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier; import org.opendaylight.mdsal.dom.api.DOMRpcImplementation; @@ -24,24 +20,15 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; * * @author Robert Varga */ -final class RemoteRpcImplementation implements DOMRpcImplementation { - // 0 for local, 1 for binding, 2 for remote - private static final long COST = 2; - - private final ActorRef remoteInvoker; - private final Timeout askDuration; - - RemoteRpcImplementation(final ActorRef remoteInvoker, final RemoteRpcProviderConfig config) { - this.remoteInvoker = Preconditions.checkNotNull(remoteInvoker); - this.askDuration = config.getAskDuration(); +final class RemoteRpcImplementation extends AbstractRemoteImplementation implements DOMRpcImplementation { + RemoteRpcImplementation(final ActorRef remoteInvoker, final RemoteOpsProviderConfig config) { + super(remoteInvoker, config); } @Override - public FluentFuture invokeRpc(final DOMRpcIdentifier rpc, + public ListenableFuture invokeRpc(final DOMRpcIdentifier rpc, final NormalizedNode input) { - final RemoteDOMRpcFuture ret = RemoteDOMRpcFuture.create(rpc.getType().getLastComponent()); - ret.completeWith(Patterns.ask(remoteInvoker, ExecuteRpc.from(rpc, input), askDuration)); - return ret; + return new RemoteDOMRpcFuture(rpc.getType(), ask(ExecuteRpc.from(rpc, input))); } @Override