Adding event sink & dispatcher abstractions.
Increased strength of the provider & service types.
diff --git a/net/api/src/main/java/org/onlab/onos/event/EventSink.java b/net/api/src/main/java/org/onlab/onos/event/EventSink.java
new file mode 100644
index 0000000..f46458c
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/event/EventSink.java
@@ -0,0 +1,23 @@
+package org.onlab.onos.event;
+
+/**
+ * Abstraction of an event sink capable of processing the specified event types.
+ */
+public interface EventSink<E extends Event> {
+
+    /**
+     * Processes the specified event.
+     *
+     * @param event event to be processed
+     */
+    void process(E event);
+
+    /**
+     * Reports a problem encountered while processing an event.
+     *
+     * @param event event being processed
+     * @param error error encountered while processing
+     */
+    void reportProblem(E event, Throwable error);
+
+}