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);
+	}
+
 }