blob: 0a25c47871ffa43d94bbf9a5d2f62ff3604407b8 [file] [log] [blame]
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -08001package net.onrc.onos.ofcontroller.networkgraph;
2
Yuta HIGUCHIb5107282014-02-14 17:18:24 -08003import java.nio.ByteBuffer;
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -08004import java.util.ArrayList;
5import java.util.List;
6
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -08007/**
Pavlin Radoslavov018d5332014-02-19 23:08:35 -08008 * Self-contained Switch Object
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -08009 *
10 * TODO: We probably want common base class/interface for Self-Contained Event Object
11 *
12 */
13public class SwitchEvent {
14 private final Long dpid;
15
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080016 /**
17 * Default constructor.
18 */
19 public SwitchEvent() {
20 dpid = null;
21 }
22
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080023 public SwitchEvent(Long dpid) {
24 this.dpid = dpid;
25 }
26
27 public Long getDpid() {
28 return dpid;
29 }
30
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080031 @Override
32 public String toString() {
33 return "[SwitchEvent 0x" + Long.toHexString(dpid) + "]";
34 }
35
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080036 public static final int SWITCHID_BYTES = 2 + 8;
37
Yuta HIGUCHIa341b112014-02-23 15:42:00 -080038 public static ByteBuffer getSwitchID(Long dpid) {
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080039 if (dpid == null) {
40 throw new IllegalArgumentException("dpid cannot be null");
41 }
Yuta HIGUCHIa341b112014-02-23 15:42:00 -080042 return ByteBuffer.allocate(SwitchEvent.SWITCHID_BYTES).putChar('S').putLong(dpid);
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080043 }
44
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080045 public byte[] getID() {
Yuta HIGUCHIa341b112014-02-23 15:42:00 -080046 return getSwitchID(dpid).array();
47 }
48
49 public ByteBuffer getIDasByteBuffer() {
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080050 return getSwitchID(dpid);
51 }
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080052}