MD-SAL Statistics Manager - Did the code changes that is needed to work with commit...
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / IMDController.java
1 package org.opendaylight.openflowplugin.openflow.md.core;
2
3 import java.util.List;
4
5 import org.opendaylight.openflowplugin.openflow.md.queue.PopListener;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
7 import org.opendaylight.yangtools.yang.binding.DataObject;
8
9 public interface IMDController {
10
11     /**
12      * Allows application to start translating OF messages received from switches.
13      *
14      * @param messageType
15      *            the type of OF message that applications want to receive
16      * @param version corresponding OF version
17      * @param translator
18      *            : Object that implements the {@link IMDMessageTranslator}
19      */
20     public void addMessageTranslator(Class<? extends DataObject> messageType, int version, IMDMessageTranslator<OfHeader, List<DataObject>> translator);
21
22     /**
23      * Allows application to stop receiving OF message received from switches.
24      *
25      * @param messageType
26      *            The type of OF message that applications want to stop
27      *            receiving
28      * @param version TODO
29      * @param translator
30      *            The object that implements the {@link IMDMessageTranslator}
31      */
32     public void removeMessageTranslator(Class<? extends DataObject> messageType, int version, IMDMessageTranslator<OfHeader, List<DataObject>> translator);
33
34     /**
35      * Allows application to start pop-listening MD-SAL messages received from switches.
36      *
37      * @param messageType
38      *            the type of OF message that applications want to receive
39      * @param popListener
40      *            : Object that implements the {@link PopListener}
41      */
42     void removeMessagePopListener(Class<? extends DataObject> messageType, PopListener<DataObject> popListener);
43
44     /**
45      * Allows application to stop pop-listening MD-SAL messages received from switches.
46      *
47      * @param messageType
48      *            the type of OF message that applications want to receive
49      * @param popListener
50      *            : Object that implements the {@link PopListener}
51      */
52     void addMessagePopListener(Class<? extends DataObject> messageType, PopListener<DataObject> popListener);
53
54 }