Starting to experiment with flow tracking.
diff --git a/core/api/src/main/java/org/onlab/onos/net/topology/TopologyEvent.java b/core/api/src/main/java/org/onlab/onos/net/topology/TopologyEvent.java
index 0be5323..268b6ac 100644
--- a/core/api/src/main/java/org/onlab/onos/net/topology/TopologyEvent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/topology/TopologyEvent.java
@@ -1,12 +1,17 @@
package org.onlab.onos.net.topology;
import org.onlab.onos.event.AbstractEvent;
+import org.onlab.onos.event.Event;
+
+import java.util.List;
/**
* Describes network topology event.
*/
public class TopologyEvent extends AbstractEvent<TopologyEvent.Type, Topology> {
+ private final List<Event> reasons;
+
/**
* Type of topology events.
*/
@@ -23,9 +28,11 @@
*
* @param type topology event type
* @param topology event topology subject
+ * @param reasons list of events that triggered topology change
*/
- public TopologyEvent(Type type, Topology topology) {
+ public TopologyEvent(Type type, Topology topology, List<Event> reasons) {
super(type, topology);
+ this.reasons = reasons;
}
/**
@@ -33,10 +40,24 @@
*
* @param type link event type
* @param topology event topology subject
+ * @param reasons list of events that triggered topology change
* @param time occurrence time
*/
- public TopologyEvent(Type type, Topology topology, long time) {
+ public TopologyEvent(Type type, Topology topology, List<Event> reasons,
+ long time) {
super(type, topology, time);
+ this.reasons = reasons;
+ }
+
+
+ /**
+ * Returns the list of events that triggered the topology change.
+ *
+ * @return list of events responsible for change in topology; null if
+ * initial topology computation
+ */
+ public List<Event> reasons() {
+ return reasons;
}
}