1 package org.opendaylight.controller.sal.connector.remoterpc;
3 import java.util.Collection;
5 import java.util.concurrent.ExecutorService;
7 import org.opendaylight.controller.sal.connector.remoterpc.Client;
8 import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTable;
9 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
10 import org.opendaylight.controller.sal.core.api.Provider;
11 import org.opendaylight.controller.sal.core.api.Provider.ProviderFunctionality;
12 import org.opendaylight.yangtools.yang.common.QName;
13 import org.opendaylight.yangtools.yang.common.RpcResult;
14 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
16 public class RemoteRpcProvider implements
21 private final ServerImpl server;
22 private final Client client;
23 private RoutingTableProvider provider;
26 public void setRoutingTableProvider(RoutingTableProvider provider) {
27 this.provider = provider;
28 server.setRoutingTableProvider(provider);
29 client.setRoutingTableProvider(provider);
33 public RpcResult<CompositeNode> invokeRpc(QName rpc, CompositeNode input) {
34 return client.invokeRpc(rpc, input);
38 public Set<QName> getSupportedRpcs() {
39 return client.getSupportedRpcs();
43 public RemoteRpcProvider(ServerImpl server, Client client) {
48 public void setBrokerSession(ProviderSession session) {
49 server.setBrokerSession(session);
51 public void setServerPool(ExecutorService serverPool) {
52 server.setServerPool(serverPool);
55 client.setRoutingTableProvider(provider);
56 server.setRoutingTableProvider(provider);
60 public void onRouteUpdated(String key, Set values) {
61 server.onRouteUpdated(key, values);
63 public void onRouteDeleted(String key) {
64 server.onRouteDeleted(key);
69 public Collection<ProviderFunctionality> getProviderFunctionality() {
70 // TODO Auto-generated method stub
76 public void onSessionInitiated(ProviderSession session) {
77 server.setBrokerSession(session);
82 public void close() throws Exception {