blob: 9656013848c0b09b491dd2d6e5c3b476676c017c [file] [log] [blame]
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -07001package net.onrc.onos.core.topology;
2
3import java.util.Collection;
4
5import net.floodlightcontroller.util.MACAddress;
6import net.onrc.onos.core.util.Dpid;
7import net.onrc.onos.core.util.LinkTuple;
8import net.onrc.onos.core.util.SwitchPort;
9
10/**
11 * Interface to reference internal self-contained elements.
12 */
13public interface TopologyInternal extends Topology {
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070014 /**
15 * Gets a SwitchEvent.
16 *
17 * @param dpid Switch DPID
18 * @return the SwitchEvent for the Switch DPID if found, otherwise null
19 */
20 public SwitchEvent getSwitchEvent(Dpid dpid);
21
22 /**
Pavlin Radoslavov054cd592014-08-07 20:57:16 -070023 * Gets all SwitchEvent entries.
24 *
25 * @return all SwitchEvent entries.
26 */
27 public Collection<SwitchEvent> getAllSwitchEvents();
28
29 /**
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070030 * Gets a PortEvent.
31 *
32 * @param port Port identifier
33 * @return the PortEvent for the Port identifier if found, otherwise null
34 */
35 public PortEvent getPortEvent(SwitchPort port);
36
37 /**
Pavlin Radoslavov054cd592014-08-07 20:57:16 -070038 * Gets all PortEvent entries.
39 *
40 * @return all PortEvent entries.
41 */
42 public Collection<PortEvent> getAllPortEvents();
43
44 /**
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070045 * Gets a LinkEvent.
46 *
47 * @param linkId Link identifier
48 * @return the LinkEvent for the Link identifier if found, otherwise null
49 */
50 public LinkEvent getLinkEvent(LinkTuple linkId);
51
52 /**
53 * Gets a LinkEvent.
54 *
55 * @param linkId Link identifier
56 * @param type type
57 * @return the LinkEvent for the Link identifier and type if found, otherwise null
58 */
59 public LinkEvent getLinkEvent(final LinkTuple linkId, final String type);
60
61 /**
Pavlin Radoslavov054cd592014-08-07 20:57:16 -070062 * Gets a collection of LinkEvent entries.
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070063 *
64 * @param linkId Link identifier
Pavlin Radoslavov054cd592014-08-07 20:57:16 -070065 * @return Collection of LinkEvent entries.
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070066 */
67 public Collection<LinkEvent> getLinkEvents(LinkTuple linkId);
68
69 /**
Pavlin Radoslavov054cd592014-08-07 20:57:16 -070070 * Gets all LinkEvent entries.
71 *
72 * @return all LinkEvent entries.
73 */
74 public Collection<LinkEvent> getAllLinkEvents();
75
76 /**
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070077 * Gets a HostEvent.
78 *
79 * @param mac MACAddress of the host
80 * @return the HostEvent for the MACAddress if found, otherwise null
81 */
82 public HostEvent getHostEvent(MACAddress mac);
83
Pavlin Radoslavov054cd592014-08-07 20:57:16 -070084 /**
85 * Gets all HostEvent entries.
86 *
87 * @return all HostEvent entries.
88 */
89 public Collection<HostEvent> getAllHostEvents();
Yuta HIGUCHI8b389a72014-07-18 13:50:00 -070090}