Refactor the logic on collecting OpenFlow message statistics

Change-Id: I34c209c0ca90cb094ed5f82c96a8a43d3519b807
diff --git a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java
index 6f918e8..964c79a 100644
--- a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java
+++ b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/OpenFlowAgent.java
@@ -20,6 +20,8 @@
 import org.onosproject.openflow.controller.RoleState;
 import org.projectfloodlight.openflow.protocol.OFMessage;
 
+import java.util.List;
+
 /**
  * Responsible for keeping track of the current set of switches
  * connected to the system. As well as whether they are in Master
@@ -84,6 +86,14 @@
     void removeConnectedSwitch(Dpid dpid);
 
     /**
+     * Notify OpenFlow message listeners on all outgoing message event.
+     *
+     * @param dpid the dpid the message sent to
+     * @param m the collection of messages to sent out
+     */
+    void processDownstreamMessage(Dpid dpid, List<OFMessage> m);
+
+    /**
      * Process a message coming from a switch.
      *
      * @param dpid the dpid the message came on.