Wired up a NotificationPopListner that will notify the MD-SAL
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / SwitchConnectionHandlerImpl.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.openflowplugin.openflow.md.core;
10
11 import java.net.InetAddress;
12
13 import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
14 import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;
15 import org.opendaylight.openflowplugin.openflow.md.core.session.OFSessionUtil;
16 import org.opendaylight.openflowplugin.openflow.md.queue.PopListener;
17 import org.opendaylight.openflowplugin.openflow.md.queue.QueueKeeperLightImpl;
18
19 /**
20  * @author mirehak
21  *
22  */
23 public class SwitchConnectionHandlerImpl implements SwitchConnectionHandler {
24
25     private QueueKeeperLightImpl queueKeeper;
26     private ErrorHandler errorHandler;
27
28     /**
29      *
30      */
31     public SwitchConnectionHandlerImpl() {
32         queueKeeper = new QueueKeeperLightImpl();
33         queueKeeper.setTranslatorMapping(OFSessionUtil.getListenersMap());
34         queueKeeper.init();
35         // TODO: add pop-listeners consuming object processed via queue
36         //queueKeeper.addPopListener(listener);
37         queueKeeper.addPopListener(new NotificationPopListener());
38
39         errorHandler = new ErrorHandlerQueueImpl();
40         new Thread(errorHandler).start();
41     }
42
43     @Override
44     public boolean accept(InetAddress address) {
45         // TODO:: add policy derived rules
46         return true;
47     }
48
49     @Override
50     public void onSwitchConnected(ConnectionAdapter connectionAdapter) {
51         ConnectionConductor conductor = ConnectionConductorFactory.createConductor(
52                 connectionAdapter, queueKeeper);
53         conductor.setErrorHandler(errorHandler);
54     }
55
56 }