Topology events related modifications:
 * Added new class TopologyEvent which encapsulates one of the following
   events: Switch event, Port event, Link event, Device event
* Added getID() method  to the new TopologyEvent class, and to each
  of the concrete topology related events.
* Added default constructors, because they are needed for Kryo-related
  deserialization
* Added Kryo registration for the new classes.

Change-Id: I61233b3176a7124bdf9e906da9f5efdc663b3003
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkEvent.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkEvent.java
index 81f9ba3..c8cf71e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkEvent.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkEvent.java
@@ -14,6 +14,14 @@
     private final SwitchPort src;
     private final SwitchPort dst;
 
+    /**
+     * Default constructor.
+     */
+    public LinkEvent() {
+	src = null;
+	dst = null;
+    }
+
     public LinkEvent(Long src_dpid, Long src_port_no, Long dst_dpid,
 	    Long dst_port_no) {
 
@@ -44,4 +52,8 @@
 		.put(PortEvent.getPortID(dst_dpid, dst_port_no)).array();
     }
 
+    public byte[] getID() {
+	return getLinkID(src.getDpid(), src.getNumber(),
+			 dst.getDpid(), dst.getNumber());
+    }
 }