Renamed *NetworkGraph* references to *Topology*.
Change-Id: Iec01c47086e1518592c0753e75395d3fe5abcde3
diff --git a/src/main/java/net/onrc/onos/core/topology/ITopologyService.java b/src/main/java/net/onrc/onos/core/topology/ITopologyService.java
new file mode 100644
index 0000000..b6280bc
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/ITopologyService.java
@@ -0,0 +1,40 @@
+package net.onrc.onos.core.topology;
+
+import net.floodlightcontroller.core.module.IFloodlightService;
+
+/**
+ * Interface for providing the topology service to other modules.
+ */
+public interface ITopologyService extends IFloodlightService {
+ /**
+ * Allows a module to get a reference to the global topology object.
+ *
+ * @return the global Topology object
+ */
+ public Topology getTopology();
+
+ /**
+ * Registers a listener for topology events.
+ *
+ * @param listener the listener to register
+ */
+ public void registerTopologyListener(ITopologyListener listener);
+
+ /**
+ * Deregisters a listener for topology events. The listener will no longer
+ * receive topology events after this call.
+ *
+ * @param listener the listener to deregister
+ */
+ public void deregisterTopologyListener(ITopologyListener listener);
+
+ /**
+ * Allows a module to get a reference to the southbound interface to
+ * the topology.
+ * TODO Figure out how to hide the southbound interface from
+ * applications/modules that shouldn't touch it
+ *
+ * @return the TopologyDiscoveryInterface object
+ */
+ public TopologyDiscoveryInterface getTopologyDiscoveryInterface();
+}