blob: dce0725f6160057b2bd6578696bdad9758b6f496 [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/**
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -08008 * Self-contained Switch and Port event 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
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -080016 private List<PortEvent> ports;
17
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080018 /**
19 * Default constructor.
20 */
21 public SwitchEvent() {
22 dpid = null;
23 }
24
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080025 public SwitchEvent(Long dpid) {
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -080026 this(dpid, new ArrayList<PortEvent>());
27 }
28
29 public SwitchEvent(Long dpid, List<PortEvent> ports) {
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080030 this.dpid = dpid;
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -080031 this.ports = ports;
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080032 }
33
34 public Long getDpid() {
35 return dpid;
36 }
37
Yuta HIGUCHIdac4caa2014-02-11 18:51:35 -080038 public List<PortEvent> getPorts() {
39 return ports;
40 }
41
42 public void setPorts(List<PortEvent> ports) {
43 this.ports = ports;
44 }
45
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080046 @Override
47 public String toString() {
48 return "[SwitchEvent 0x" + Long.toHexString(dpid) + "]";
49 }
50
Yuta HIGUCHIb5107282014-02-14 17:18:24 -080051 public static final int SWITCHID_BYTES = 2 + 8;
52
53 public static byte[] getSwitchID(Long dpid) {
54 if (dpid == null) {
55 throw new IllegalArgumentException("dpid cannot be null");
56 }
57 return ByteBuffer.allocate(SwitchEvent.SWITCHID_BYTES).putChar('S').putLong(dpid)
58 .array();
59 }
60
Pavlin Radoslavov45ec04b2014-02-14 23:29:33 -080061 public byte[] getID() {
62 return getSwitchID(dpid);
63 }
Yuta HIGUCHI54ab8cd2014-02-11 09:43:34 -080064}