blob: 78562e1dd379d3e0b949a3ea0b9432771a200e96 [file] [log] [blame]
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -07001package net.onrc.onos.ofcontroller.flowmanager;
2
3import net.onrc.onos.ofcontroller.topology.TopologyElement;
Pavlin Radoslavovb7506842013-10-29 17:46:54 -07004import net.onrc.onos.ofcontroller.util.FlowEntry;
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -07005import net.onrc.onos.ofcontroller.util.FlowPath;
6
7/**
Pavlin Radoslavov9a859022013-10-30 10:08:24 -07008 * Interface for providing Flow Event Handler Service to other modules.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -07009 */
Pavlin Radoslavov9a859022013-10-30 10:08:24 -070010public interface IFlowEventHandlerService {
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070011 /**
12 * Receive a notification that a Flow is added.
13 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070014 * @param flowPath the Flow that is added.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070015 */
16 void notificationRecvFlowAdded(FlowPath flowPath);
17
18 /**
19 * Receive a notification that a Flow is removed.
20 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070021 * @param flowPath the Flow that is removed.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070022 */
23 void notificationRecvFlowRemoved(FlowPath flowPath);
24
25 /**
26 * Receive a notification that a Flow is updated.
27 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070028 * @param flowPath the Flow that is updated.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070029 */
30 void notificationRecvFlowUpdated(FlowPath flowPath);
31
32 /**
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070033 * Receive a notification that a FlowEntry is added.
34 *
35 * @param flowEntry the FlowEntry that is added.
36 */
37 void notificationRecvFlowEntryAdded(FlowEntry flowEntry);
38
39 /**
40 * Receive a notification that a FlowEntry is removed.
41 *
42 * @param flowEntry the FlowEntry that is removed.
43 */
44 void notificationRecvFlowEntryRemoved(FlowEntry flowEntry);
45
46 /**
47 * Receive a notification that a FlowEntry is updated.
48 *
49 * @param flowEntry the FlowEntry that is updated.
50 */
51 void notificationRecvFlowEntryUpdated(FlowEntry flowEntry);
52
53 /**
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070054 * Receive a notification that a Topology Element is added.
55 *
56 * @param topologyElement the Topology Element that is added.
57 */
58 void notificationRecvTopologyElementAdded(TopologyElement topologyElement);
59
60 /**
61 * Receive a notification that a Topology Element is removed.
62 *
63 * @param topologyElement the Topology Element that is removed.
64 */
65 void notificationRecvTopologyElementRemoved(TopologyElement topologyElement);
66
67 /**
68 * Receive a notification that a Topology Element is updated.
69 *
70 * @param topologyElement the Topology Element that is updated.
71 */
72 void notificationRecvTopologyElementUpdated(TopologyElement topologyElement);
73}