blob: b36eba25eb464c583b5ea71f4af6020115fe8804 [file] [log] [blame]
Jonathan Hart472062d2014-04-03 10:56:48 -07001package net.onrc.onos.core.topology;
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -08002
Yuta HIGUCHIb5107282014-02-14 17:18:24 -08003import java.nio.ByteBuffer;
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -08004
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -08005/**
Pavlin Radoslavov018d5332014-02-19 23:08:35 -08006 * Self-contained Switch Object
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -08007 *
8 * TODO: We probably want common base class/interface for Self-Contained Event Object
9 *
10 */
11public class SwitchEvent {
Yuta HIGUCHIf65bcd52014-02-23 15:09:57 -080012 protected final Long dpid;
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080013
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080014 /**
Yuta HIGUCHI9cc421b2014-02-24 15:34:44 -080015 * Default constructor for Serializer to use.
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080016 */
Yuta HIGUCHI9cc421b2014-02-24 15:34:44 -080017 @Deprecated
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080018 public SwitchEvent() {
19 dpid = null;
20 }
21
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080022 public SwitchEvent(Long dpid) {
23 this.dpid = dpid;
24 }
25
26 public Long getDpid() {
27 return dpid;
28 }
29
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080030 @Override
31 public String toString() {
32 return "[SwitchEvent 0x" + Long.toHexString(dpid) + "]";
33 }
34
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080035 public static final int SWITCHID_BYTES = 2 + 8;
36
Yuta HIGUCHIa341b112014-02-23 15:42:00 -080037 public static ByteBuffer getSwitchID(Long dpid) {
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080038 if (dpid == null) {
39 throw new IllegalArgumentException("dpid cannot be null");
40 }
Yuta HIGUCHI9e873bd2014-02-24 13:29:13 -080041 return (ByteBuffer) ByteBuffer.allocate(SwitchEvent.SWITCHID_BYTES).putChar('S').putLong(dpid).flip();
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080042 }
43
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080044 public byte[] getID() {
Yuta HIGUCHIa341b112014-02-23 15:42:00 -080045 return getSwitchID(dpid).array();
46 }
47
48 public ByteBuffer getIDasByteBuffer() {
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080049 return getSwitchID(dpid);
50 }
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080051}