Merge "Commented out Sys.outs in runtime generated code."
[controller.git] / opendaylight / md-sal / sal-remoterpc-connector / implementation / src / main / java / org / opendaylight / controller / sal / connector / remoterpc / RemoteRpcProvider.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.controller.sal.connector.remoterpc;
10
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;
16
17 import java.util.Collection;
18 import java.util.Set;
19
20 public class RemoteRpcProvider implements 
21     RemoteRpcServer,
22     RemoteRpcClient,
23     Provider {
24
25     private final ServerImpl server;
26     private final ClientImpl client;
27     private RoutingTableProvider provider;
28
29     @Override
30     public void setRoutingTableProvider(RoutingTableProvider provider) {
31         this.provider = provider;
32         server.setRoutingTableProvider(provider);
33         client.setRoutingTableProvider(provider);
34     }
35     
36     @Override
37     public RpcResult<CompositeNode> invokeRpc(QName rpc, CompositeNode input) {
38         return client.invokeRpc(rpc, input);
39     }
40     
41     @Override
42     public Set<QName> getSupportedRpcs() {
43         return client.getSupportedRpcs();
44     }
45     
46     
47     public RemoteRpcProvider(ServerImpl server, ClientImpl client) {
48         this.server = server;
49         this.client = client;
50     }
51     
52     public void setBrokerSession(ProviderSession session) {
53         server.setBrokerSession(session);
54     }
55 //    public void setServerPool(ExecutorService serverPool) {
56 //        server.setServerPool(serverPool);
57 //    }
58     public void start() {
59         //when listener was being invoked and addRPCImplementation was being
60         //called the client was null.
61         server.setClient(client);
62         server.start();
63         client.start();
64
65
66     }
67
68     
69     @Override
70     public Collection<ProviderFunctionality> getProviderFunctionality() {
71         // TODO Auto-generated method stub
72         return null;
73     }
74     
75     
76     @Override
77     public void onSessionInitiated(ProviderSession session) {
78         server.setBrokerSession(session);
79         start();
80     }
81     
82     
83     public void close() throws Exception {
84         server.close();
85         client.close();
86     }
87
88     @Override
89     public void stop() {
90         server.stop();
91         client.stop();
92     }
93 }