Renamed networkgraph package to topology.
Moved NetworkGraphPublisher into new topology package.
net.onrc.onos.ofcontroller.networkgraph.* => net.onrc.onos.core.topology.*
net.onrc.onos.ofcontroller.floodlightlistener.NetworkGraphPublisher => net.onrc.onos.core.topology.NetworkGraphPublisher
Change-Id: I8b156d0fcbba520fee61e92ab659bb02cfa704ac
diff --git a/src/main/java/net/onrc/onos/core/topology/LinkEvent.java b/src/main/java/net/onrc/onos/core/topology/LinkEvent.java
new file mode 100644
index 0000000..bf43155
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/LinkEvent.java
@@ -0,0 +1,101 @@
+package net.onrc.onos.core.topology;
+
+import java.nio.ByteBuffer;
+
+import net.onrc.onos.core.topology.PortEvent.SwitchPort;
+
+/**
+ * Self-contained Link event Object
+ *
+ * TODO: We probably want common base class/interface for Self-Contained Event Object
+ *
+ */
+public class LinkEvent {
+ protected final SwitchPort src;
+ protected final SwitchPort dst;
+
+ /**
+ * Default constructor for Serializer to use.
+ */
+ @Deprecated
+ public LinkEvent() {
+ src = null;
+ dst = null;
+ }
+
+ public LinkEvent(Long src_dpid, Long src_port_no, Long dst_dpid,
+ Long dst_port_no) {
+ src = new SwitchPort(src_dpid, src_port_no);
+ dst = new SwitchPort(dst_dpid, dst_port_no);
+ }
+
+ public LinkEvent(Link link) {
+ src = new SwitchPort(link.getSrcSwitch().getDpid(),
+ link.getSrcPort().getNumber());
+ dst = new SwitchPort(link.getDstSwitch().getDpid(),
+ link.getDstPort().getNumber());
+ }
+
+ public SwitchPort getSrc() {
+ return src;
+ }
+
+ public SwitchPort getDst() {
+ return dst;
+ }
+
+ @Override
+ public String toString() {
+ return "[LinkEvent " + src + "->" + dst + "]";
+ }
+
+ public static final int LINKID_BYTES = 2 + PortEvent.PORTID_BYTES * 2;
+
+ public static ByteBuffer getLinkID(Long src_dpid, Long src_port_no,
+ Long dst_dpid, Long dst_port_no) {
+ return (ByteBuffer) ByteBuffer.allocate(LinkEvent.LINKID_BYTES).putChar('L')
+ .put(PortEvent.getPortID(src_dpid, src_port_no))
+ .put(PortEvent.getPortID(dst_dpid, dst_port_no)).flip();
+ }
+
+ public byte[] getID() {
+ return getLinkID(src.getDpid(), src.getNumber(),
+ dst.getDpid(), dst.getNumber()).array();
+ }
+
+ public ByteBuffer getIDasByteBuffer() {
+ return getLinkID(src.getDpid(), src.getNumber(),
+ dst.getDpid(), dst.getNumber());
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((dst == null) ? 0 : dst.hashCode());
+ result = prime * result + ((src == null) ? 0 : src.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ LinkEvent other = (LinkEvent) obj;
+ if (dst == null) {
+ if (other.dst != null)
+ return false;
+ } else if (!dst.equals(other.dst))
+ return false;
+ if (src == null) {
+ if (other.src != null)
+ return false;
+ } else if (!src.equals(other.src))
+ return false;
+ return true;
+ }
+}
\ No newline at end of file