2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.sal.connector.remoterpc;
11 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
12 import org.opendaylight.controller.sal.core.api.Provider;
13 import org.opendaylight.yangtools.yang.common.QName;
14 import org.opendaylight.yangtools.yang.common.RpcResult;
15 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
17 import java.util.Collection;
20 public class RemoteRpcProvider implements
25 private final ServerImpl server;
26 private final ClientImpl client;
27 private RoutingTableProvider provider;
30 public void setRoutingTableProvider(RoutingTableProvider provider) {
31 this.provider = provider;
32 server.setRoutingTableProvider(provider);
33 client.setRoutingTableProvider(provider);
37 public RpcResult<CompositeNode> invokeRpc(QName rpc, CompositeNode input) {
38 return client.invokeRpc(rpc, input);
42 public Set<QName> getSupportedRpcs() {
43 return client.getSupportedRpcs();
47 public RemoteRpcProvider(ServerImpl server, ClientImpl client) {
52 public void setBrokerSession(ProviderSession session) {
53 server.setBrokerSession(session);
55 // public void setServerPool(ExecutorService serverPool) {
56 // server.setServerPool(serverPool);
59 //when listener was being invoked and addRPCImplementation was being
60 //called the client was null.
61 server.setClient(client);
70 public Collection<ProviderFunctionality> getProviderFunctionality() {
71 // TODO Auto-generated method stub
77 public void onSessionInitiated(ProviderSession session) {
78 server.setBrokerSession(session);
83 public void close() throws Exception {