First sketch of instance local topology event handler.
TODO:
* Not sure if INetworkGraphListener should pass SelfContained Event Object or In-memory Object
Change-Id: If44b70a54f087357b7e830cebcf5dba985cf7797
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java
index 97fa4b5..80f0d0b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java
@@ -5,6 +5,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
import net.floodlightcontroller.core.module.FloodlightModuleException;
@@ -25,6 +26,7 @@
private IDatagridService datagridService;
private IControllerRegistryService registryService;
+ private CopyOnWriteArrayList<INetworkGraphListener> networkGraphListeners;
private IRestApiService restApi;
@@ -61,7 +63,8 @@
datagridService = context.getServiceImpl(IDatagridService.class);
registryService = context.getServiceImpl(IControllerRegistryService.class);
- networkGraph = new NetworkGraphImpl(registryService);
+ networkGraphListeners = new CopyOnWriteArrayList<>();
+ networkGraph = new NetworkGraphImpl(registryService, networkGraphListeners);
//southboundNetworkGraph = new NetworkGraphDatastore(networkGraph);
}
@@ -81,4 +84,14 @@
return networkGraph;
}
+ @Override
+ public void registerNetworkGraphListener(INetworkGraphListener listener) {
+ networkGraphListeners.addIfAbsent(listener);
+ }
+
+ @Override
+ public void deregisterNetworkGraphListener(INetworkGraphListener listener) {
+ networkGraphListeners.remove(listener);
+ }
+
}