[ONOS-3537] Initial implementation of ControlMessageManager

- Add skeletal code of ControlMessageStore
- Add initial implementation of ControlMessageManager

Change-Id: I17161ce18b67e8f35ea9b80832f3732a55de323b
diff --git a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java
index b2412b7..83858be 100644
--- a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java
+++ b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageEvent.java
@@ -18,13 +18,15 @@
 import org.onosproject.event.AbstractEvent;
 import org.onosproject.cpman.ControlMessage;
 
+import java.util.Collection;
+
 import static com.google.common.base.MoreObjects.toStringHelper;
 
 /**
  * Describes control message event.
  */
 public class ControlMessageEvent
-        extends AbstractEvent<ControlMessageEvent.Type, ControlMessage> {
+        extends AbstractEvent<ControlMessageEvent.Type, Collection<ControlMessage>> {
 
     /**
      * Type of control message events.
@@ -39,11 +41,11 @@
     /**
      * Creates an event of given type and the current time.
      *
-     * @param type  control message event type
-     * @param controlMessage event control message subject
+     * @param type control message event type
+     * @param controlMessages event control message subject
      */
-    public ControlMessageEvent(Type type, ControlMessage controlMessage) {
-        super(type, controlMessage);
+    public ControlMessageEvent(Type type, Collection<ControlMessage> controlMessages) {
+        super(type, controlMessages);
     }
 
     @Override
diff --git a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageService.java b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageService.java
index 302a446..c99a77b 100644
--- a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageService.java
+++ b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageService.java
@@ -20,5 +20,8 @@
 /**
  * Service for obtaining control message statistic information.
  */
-public interface ControlMessageService extends ListenerService {
+public interface ControlMessageService
+        extends ListenerService<ControlMessageEvent, ControlMessageListener> {
+
+
 }
diff --git a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageStore.java b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageStore.java
index baeb327..8c6667a 100644
--- a/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageStore.java
+++ b/apps/cpman/api/src/main/java/org/onosproject/cpman/message/ControlMessageStore.java
@@ -36,8 +36,7 @@
      * @param controlMessages a collection of control message stats
      * @return ready to send event describing what occurred
      */
-    ControlMessageEvent updateStatsInfo(ProviderId providerId,
-                                        DeviceId deviceId,
+    ControlMessageEvent updateStatsInfo(ProviderId providerId, DeviceId deviceId,
                                         Collection<ControlMessage> controlMessages);
 
 }