Bug-835 - Reserve Ports should be logical ports
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / IMDController.java
1 /**
2  * Copyright IBM Corporation, 2013.  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 package org.opendaylight.openflowplugin.openflow.md.core;
9
10 import java.util.List;
11
12 import org.opendaylight.openflowplugin.openflow.md.queue.PopListener;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
14 import org.opendaylight.yangtools.yang.binding.DataObject;
15
16 public interface IMDController {
17
18     /**
19      * Allows application to start translating OF messages received from switches.
20      *
21      * @param messageType
22      *            the type of OF message that applications want to receive
23      * @param version corresponding OF version
24      * @param translator
25      *            : Object that implements the {@link IMDMessageTranslator}
26      */
27     public void addMessageTranslator(Class<? extends DataObject> messageType, int version, IMDMessageTranslator<OfHeader, List<DataObject>> translator);
28
29     /**
30      * Allows application to stop receiving OF message received from switches.
31      *
32      * @param messageType
33      *            The type of OF message that applications want to stop
34      *            receiving
35      * @param version TODO
36      * @param translator
37      *            The object that implements the {@link IMDMessageTranslator}
38      */
39     public void removeMessageTranslator(Class<? extends DataObject> messageType, int version, IMDMessageTranslator<OfHeader, List<DataObject>> translator);
40
41     /**
42      * Allows application to start pop-listening MD-SAL messages received from switches.
43      *
44      * @param messageType
45      *            the type of OF message that applications want to receive
46      * @param popListener
47      *            : Object that implements the {@link PopListener}
48      */
49     void removeMessagePopListener(Class<? extends DataObject> messageType, PopListener<DataObject> popListener);
50
51     /**
52      * Allows application to stop pop-listening MD-SAL messages received from switches.
53      *
54      * @param messageType
55      *            the type of OF message that applications want to receive
56      * @param popListener
57      *            : Object that implements the {@link PopListener}
58      */
59     void addMessagePopListener(Class<? extends DataObject> messageType, PopListener<DataObject> popListener);
60
61 }