Added sample provider and consumer for MD SAL
[controller.git] / opendaylight / sal / yang-prototype / sal / samples / toaster-provider / src / main / java / org / opendaylight / controller / sample / toaster / provider / ToasterProvider.java
1 package org.opendaylight.controller.sample.toaster.provider;
2 import java.util.Collection;
3 import java.util.Collections;
4
5
6 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
7 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
8 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
9 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
10 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
11 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev20091120.ToasterService;
12 import org.opendaylight.yangtools.yang.binding.RpcService;
13 import org.osgi.framework.BundleActivator;
14 import org.osgi.framework.BundleContext;
15 import org.osgi.framework.ServiceReference;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18
19
20 public class ToasterProvider implements BindingAwareProvider, BundleActivator {
21     private static final Logger log = LoggerFactory.getLogger(ToasterProvider.class);
22
23         private ConsumerContext consumerContext;
24         private ProviderContext providerContext;
25         private OpendaylightToaster toaster;
26         
27         
28         public ToasterProvider() {
29                 toaster = new OpendaylightToaster();
30         }
31         
32         @Override
33         public void onSessionInitialized(ConsumerContext session) {
34                 log.info("Consumer Session initialized");
35                 this.consumerContext = session;
36
37         }
38
39         @Override
40         public void onSessionInitiated(ProviderContext session) {
41                 log.info("Provider Session initialized");
42                 
43                 this.providerContext = session;
44                 toaster.setNotificationProvider(session.getSALService(NotificationProviderService.class));
45                 providerContext.addRpcImplementation(ToasterService.class, toaster);
46         }       
47         
48         
49         @Override
50         public Collection<? extends RpcService> getImplementations() {
51                 return Collections.emptySet();
52         }
53
54         @Override
55         public Collection<? extends ProviderFunctionality> getFunctionality() {
56                 return Collections.emptySet();
57         }
58
59         @Override
60         public void start(BundleContext context) throws Exception {
61                 ServiceReference<BindingAwareBroker> brokerRef = context.getServiceReference(BindingAwareBroker.class);
62                 BindingAwareBroker broker = context.getService(brokerRef);
63                 broker.registerProvider(this, context);
64         }
65
66         @Override
67         public void stop(BundleContext context) throws Exception {
68                 
69                 
70         }
71 }