Added class FlowManager that will be used for the Flow Path management.
diff --git a/src/main/java/net/floodlightcontroller/flowcache/IFlowService.java b/src/main/java/net/floodlightcontroller/flowcache/IFlowService.java
new file mode 100644
index 0000000..956caab
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/flowcache/IFlowService.java
@@ -0,0 +1,72 @@
+package net.floodlightcontroller.flowcache;
+
+import java.util.ArrayList;
+
+import net.floodlightcontroller.core.module.IFloodlightService;
+import net.floodlightcontroller.util.CallerId;
+import net.floodlightcontroller.util.DataPathEndpoints;
+import net.floodlightcontroller.util.FlowId;
+import net.floodlightcontroller.util.FlowPath;
+
+/**
+ * @short Interface for providing Flow Service to other modules.
+ */
+public interface IFlowService extends IFloodlightService {
+ /**
+ * Add a flow.
+ *
+ * Internally, ONOS will automatically register the installer for
+ * receiving Flow Path Notifications for that path.
+ *
+ * @param flowPath the Flow Path to install.
+ * @param flowId the return-by-reference Flow ID as assigned internally.
+ * @return true on success, otherwise false.
+ */
+ boolean addFlow(FlowPath flowPath, FlowId flowId);
+
+ /**
+ * Delete a previously added flow.
+ *
+ * @param flowId the Flow ID of the flow to delete.
+ * @return true on success, otherwise false.
+ */
+ boolean deleteFlow(FlowId flowId);
+
+ /**
+ * 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.
+ */
+ boolean getFlow(FlowId flowId, FlowPath flowPath);
+
+ /**
+ * Get a previously added flow by a specific installer for given
+ * data path endpoints.
+ *
+ * @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.
+ */
+ boolean getFlow(CallerId installerId,
+ DataPathEndpoints dataPathEndpoints,
+ FlowPath flowPath);
+
+ /**
+ * 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.
+ */
+ void getAllFlows(DataPathEndpoints dataPathEndpoints,
+ ArrayList<FlowPath> flowPaths);
+
+ /**
+ * Get all installed flows by all installers.
+ *
+ * @param flowPaths the return-by-reference list of flows.
+ */
+ void getAllFlows(ArrayList<FlowPath> flowPaths);
+}