Created basic network graph objects, and implementation for the southbound API against the Ramcloud datastore

Change-Id: I2172dacb171f27ba2099ee5a52835030d2004689

Created basic objects and southbound API to build the network graph

Change-Id: I061efdf10e5e8549f7192844d10781dc28ee62d4

Added basic northbound get switch method on network graph

Change-Id: I4f2e4d4a4df00979abc927ef0772997dcdebc4e2
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraph.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraph.java
new file mode 100644
index 0000000..867ae98
--- /dev/null
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraph.java
@@ -0,0 +1,22 @@
+package net.onrc.onos.ofcontroller.networkgraph;
+
+import java.net.InetAddress;
+
+import net.floodlightcontroller.util.MACAddress;
+
+/**
+ * The northbound interface to the topology network graph. This interface
+ * is presented to the rest of ONOS. It is currently read-only, as we want
+ * only the discovery modules to be allowed to modify the topology.
+ *
+ */
+public interface NetworkGraph {
+	public Switch getSwitch(long dpid);
+	public Iterable<Switch> getSwitches();
+	
+	public Iterable<Link> getLinks();
+	public Iterable<Link> getLinksFromSwitch(long dpid);
+	
+	public Iterable<Device> getDeviceByIp(InetAddress ipAddress);
+	public Iterable<Device> getDeviceByMac(MACAddress address);
+}