* 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/floodlightcontroller/flowcache/IFlowService.java b/src/main/java/net/floodlightcontroller/flowcache/IFlowService.java
index 956caab..c14c0c1 100644
--- a/src/main/java/net/floodlightcontroller/flowcache/IFlowService.java
+++ b/src/main/java/net/floodlightcontroller/flowcache/IFlowService.java
@@ -36,10 +36,9 @@
      * Get a previously added flow.
      *
      * @param flowId the Flow ID of the flow to get.
-     * @param flowPath the return-by-reference flow path.
-     * @return true on success, otherwise false.
+     * @return the Flow Path if found, otherwise null.
      */
-    boolean getFlow(FlowId flowId, FlowPath flowPath);
+    FlowPath getFlow(FlowId flowId);
 
     /**
      * Get a previously added flow by a specific installer for given
@@ -47,26 +46,23 @@
      *
      * @param installerId the Caller ID of the installer of the flow to get.
      * @param dataPathEndpoints the data path endpoints of the flow to get.
-     * @param flowPath the return-by-reference flow path.
-     * @return true on success, otherwise false.
+     * @return the Flow Path if found, otherwise null.
      */
-    boolean getFlow(CallerId installerId,
-		    DataPathEndpoints dataPathEndpoints,
-		    FlowPath flowPath);
+    FlowPath getFlow(CallerId installerId,
+		     DataPathEndpoints dataPathEndpoints);
 
     /**
      * Get all installed flows by all installers for given data path endpoints.
      *
      * @param dataPathEndpoints the data path endpoints of the flows to get.
-     * @param flowPaths the return-by-reference list of flows.
+     * @return the Flow Paths if found, otherwise null.
      */
-    void getAllFlows(DataPathEndpoints dataPathEndpoints,
-		     ArrayList<FlowPath> flowPaths);
+    ArrayList<FlowPath> getAllFlows(DataPathEndpoints dataPathEndpoints);
 
     /**
      * Get all installed flows by all installers.
      *
-     * @param flowPaths the return-by-reference list of flows.
+     * @return the Flow Paths if found, otherwise null.
      */
-    void getAllFlows(ArrayList<FlowPath> flowPaths);
+    ArrayList<FlowPath> getAllFlows();
 }