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
8 package org.opendaylight.openflowplugin.openflow.md.core.sal;
10 import java.util.Collection;
11 import java.util.Collections;
13 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
14 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
15 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
16 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
17 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
18 import org.opendaylight.openflowplugin.openflow.md.core.MDController;
19 import org.opendaylight.yangtools.yang.binding.RpcService;
20 import org.osgi.framework.BundleContext;
23 * OFPlugin provider implementation
25 public class OpenflowPluginProvider implements BindingAwareProvider {
27 private BindingAwareBroker broker;
29 private BundleContext context;
31 private SwitchConnectionProvider switchConnectionProvider;
33 private MDController mdController;
35 public void unsetSwitchConnectionProvider() {
36 switchConnectionProvider = null;
39 public void setSwitchConnectionProvider(
40 SwitchConnectionProvider switchConnectionProvider) {
41 this.switchConnectionProvider = switchConnectionProvider;
45 public BundleContext getContext() {
49 public void setContext(BundleContext context) {
50 this.context = context;
53 SalRegistrationManager registrationManager = new SalRegistrationManager();
56 public void onSessionInitiated(ProviderContext session) {
57 registrationManager.onSessionInitiated(session);
58 mdController = new MDController();
59 mdController.setSwitchConnectionProvider(switchConnectionProvider);
65 public void onSessionInitialized(ConsumerContext session) {
70 public Collection<? extends ProviderFunctionality> getFunctionality() {
71 return Collections.emptySet();
75 public java.util.Collection<? extends RpcService> getImplementations() {
76 return Collections.emptySet();
79 public BindingAwareBroker getBroker() {
83 public void setBroker(BindingAwareBroker broker) {
88 public void unsetBroker(BindingAwareBroker broker) {
92 private boolean hasAllDependencies(){
93 if(this.broker != null && this.switchConnectionProvider != null) {
98 private void registerProvider() {
99 if(hasAllDependencies()) {
100 this.broker.registerProvider(this,context);