blob: ea3c68daa1e4789ea8a28e01922ec1c576c43325 [file] [log] [blame]
tomcfde0622014-09-09 11:02:42 -07001package org.onlab.onos.net.topology;
2
3import org.onlab.onos.net.Provided;
tom43387f32014-08-27 14:42:43 -07004
5/**
6 * Represents a network topology computation snapshot.
7 */
tomd1900f32014-09-03 14:08:16 -07008public interface Topology extends Provided {
tom43387f32014-08-27 14:42:43 -07009
Yuta HIGUCHI33b5e762014-10-16 20:00:04 -070010 // FIXME: Following is not true right now. It is actually System.nanoTime(),
11 // which has no relation to epoch time, wall clock, etc.
tom43387f32014-08-27 14:42:43 -070012 /**
13 * Returns the time, specified in milliseconds since start of epoch,
14 * when the topology became active and made available.
15 *
16 * @return time in milliseconds since start of epoch
17 */
18 long time();
19
20 /**
21 * Returns the number of SCCs (strongly connected components) in the
22 * topology.
23 *
24 * @return number of clusters
25 */
26 int clusterCount();
27
28 /**
29 * Returns the number of infrastructure devices in the topology.
30 *
31 * @return number of devices
32 */
33 int deviceCount();
34
35
36 /**
37 * Returns the number of infrastructure links in the topology.
38 *
39 * @return number of links
40 */
41 int linkCount();
42
43 /**
44 * Returns the number of infrastructure paths computed between devices
45 * in the topology. This means the number of all the shortest paths
46 * (hop-count) between all device pairs.
47 *
48 * @return number of paths
49 */
50 int pathCount();
51
52}