blob: 6eadb569b1a0255593069147f57aef66adccebba [file] [log] [blame]
package org.onlab.onos.net.resource;
import java.util.Set;
/**
* Abstraction of a resources of a link.
*/
public interface LinkResources {
/**
* Returns resources as a set of {@link LinkResource}s.
*
* @return a set of {@link LinkResource}s
*/
Set<LinkResource> resources();
/**
* Builder of {@link LinkResources}.
*/
public interface Builder {
/**
* Adds bandwidth resource.
* <p>
* This operation adds given bandwidth to previous bandwidth and
* generates single bandwidth resource.
*
* @param bandwidth bandwidth value to be added
* @return self
*/
public Builder addBandwidth(double bandwidth);
/**
* Adds lambda resource.
*
* @param lambda lambda value to be added
* @return self
*/
public Builder addLambda(int lambda);
/**
* Builds an immutable link resources.
*
* @return link resources
*/
public LinkResources build();
}
}