* Added initial support for add/get/delete Flow state to the Network MAP via the REST API
  NOTE: The "add" REST API can't be used as-is.
* Added initial support for reading the Flow state from the Network MAP by the Controller
  and sending it to the switches.
  Currently, the Controller reads periodically the Flow entries (every 3 seconds)
  NOTE: The writing of the OpenFlow state to the switches is not tested.

The Python scripts for to add/delete/get flows are intentionally omitted until
the "add" REST API issue is resolved.

NOTE: Two new keys have been added to the database: "flow_id" and "flow_entry_id".
This requires that the older database should be deleted, because Cassandra
doesn't allow adding new keys to an existing database.
diff --git a/src/main/java/net/onrc/onos/util/IDBUtils.java b/src/main/java/net/onrc/onos/util/IDBUtils.java
index a27a261..4ff70f3 100644
--- a/src/main/java/net/onrc/onos/util/IDBUtils.java
+++ b/src/main/java/net/onrc/onos/util/IDBUtils.java
@@ -1,8 +1,12 @@
 package net.onrc.onos.util;
 
 import net.floodlightcontroller.core.INetMapTopologyObjects.IDeviceObject;
+import net.floodlightcontroller.core.INetMapTopologyObjects.IFlowEntry;
+import net.floodlightcontroller.core.INetMapTopologyObjects.IFlowPath;
 import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
 import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
+import net.floodlightcontroller.util.FlowEntryId;
+import net.floodlightcontroller.util.FlowId;
 
 public interface IDBUtils {	
 	public ISwitchObject searchSwitch(GraphDBConnection conn, String dpid);
@@ -11,4 +15,15 @@
 	public void removeDevice(GraphDBConnection conn, IDeviceObject dev);
 	public IPortObject searchPort(GraphDBConnection conn, String dpid, short number);
 	public Iterable<IDeviceObject> getDevices(GraphDBConnection conn);
+	public IFlowPath searchFlowPath(GraphDBConnection conn, FlowId flowId);
+	public IFlowPath newFlowPath(GraphDBConnection conn);
+	public void removeFlowPath(GraphDBConnection conn, IFlowPath flowPath);
+        public IFlowPath getFlowPathByFlowEntry(GraphDBConnection conn,
+						IFlowEntry flowEntry);
+	public IFlowEntry searchFlowEntry(GraphDBConnection conn,
+					  FlowEntryId flowEntryId);
+	public IFlowEntry newFlowEntry(GraphDBConnection conn);
+	public void removeFlowEntry(GraphDBConnection conn,
+				    IFlowEntry flowEntry);
+	public Iterable<IFlowEntry> getAllFlowEntries(GraphDBConnection conn);
 }