Topology interface to use Dpid, PortNumber
- Modified Switch interface to use Dpid, PortNumber instead of Long
- Modified Port interface to use Dpid, PortNumber instead of Long
- Modified Topology interface which uses Dpid, PortNumber, SwitchPort
- PortImpl#toString() format has changed: "%d:%d" -> "Dpid#toString():PortNumber#toString"
- Part of ONOS-1564
Change-Id: I8decdbb2fb0cce9e087ad49af3a087b65b8511d7
diff --git a/src/main/java/net/onrc/onos/core/topology/PortEvent.java b/src/main/java/net/onrc/onos/core/topology/PortEvent.java
index 57c648c..5c63de7 100644
--- a/src/main/java/net/onrc/onos/core/topology/PortEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/PortEvent.java
@@ -1,6 +1,10 @@
package net.onrc.onos.core.topology;
import net.onrc.onos.core.topology.web.serializers.SwitchPortSerializer;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.PortNumber;
+
+import org.apache.commons.lang.Validate;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import java.nio.ByteBuffer;
@@ -12,6 +16,8 @@
* TODO: We probably want common base class/interface for Self-Contained Event Object.
*/
public class PortEvent {
+
+ // TODO eliminate this class and use util.SwitchPort if possible
@JsonSerialize(using = SwitchPortSerializer.class)
public static class SwitchPort {
public final Long dpid;
@@ -31,12 +37,16 @@
this.number = number;
}
- public Long getDpid() {
- return dpid;
+ public SwitchPort(Dpid dpid, PortNumber number) {
+ this(dpid.value(), (long) number.value());
}
- public Long getNumber() {
- return number;
+ public Dpid getDpid() {
+ return new Dpid(dpid);
+ }
+
+ public PortNumber getNumber() {
+ return new PortNumber(number.shortValue());
}
@Override
@@ -100,12 +110,16 @@
this.id = new SwitchPort(dpid, number);
}
- public Long getDpid() {
- return id.dpid;
+ public PortEvent(Dpid dpid, PortNumber number) {
+ this.id = new SwitchPort(dpid, number);
}
- public Long getNumber() {
- return id.number;
+ public Dpid getDpid() {
+ return id.getDpid();
+ }
+
+ public PortNumber getNumber() {
+ return id.getNumber();
}
@Override
@@ -134,6 +148,12 @@
public static final int PORTID_BYTES = SwitchEvent.SWITCHID_BYTES + 2 + 8;
+ public static ByteBuffer getPortID(Dpid dpid, PortNumber number) {
+ Validate.notNull(dpid);
+ Validate.notNull(number);
+ return getPortID(dpid.value(), (long) number.value());
+ }
+
public static ByteBuffer getPortID(Long dpid, Long number) {
if (dpid == null) {
throw new IllegalArgumentException("dpid cannot be null");