blob: 6eadb569b1a0255593069147f57aef66adccebba [file] [log] [blame]
Toshio Koidec9051db2014-10-20 15:18:37 -07001package org.onlab.onos.net.resource;
2
3import java.util.Set;
4
5/**
6 * Abstraction of a resources of a link.
7 */
8public interface LinkResources {
9
10 /**
11 * Returns resources as a set of {@link LinkResource}s.
12 *
13 * @return a set of {@link LinkResource}s
14 */
15 Set<LinkResource> resources();
16
17 /**
18 * Builder of {@link LinkResources}.
19 */
20 public interface Builder {
21
22 /**
23 * Adds bandwidth resource.
24 * <p>
25 * This operation adds given bandwidth to previous bandwidth and
26 * generates single bandwidth resource.
27 *
28 * @param bandwidth bandwidth value to be added
29 * @return self
30 */
31 public Builder addBandwidth(double bandwidth);
32
33 /**
34 * Adds lambda resource.
35 *
36 * @param lambda lambda value to be added
37 * @return self
38 */
39 public Builder addLambda(int lambda);
40
41 /**
42 * Builds an immutable link resources.
43 *
44 * @return link resources
45 */
46 public LinkResources build();
47 }
48}