Toggle navigation
Toggle navigation
This project
Loading...
Sign in
홍길동
/
onos
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Toshio Koide
2014-10-23 12:02:25 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
65e890f1531ffb1b2889f9c7ad9f54713aaf570b
65e890f1
1 parent
fa0dff61
Add DefaultLinkResourceRequest implementation.
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
127 additions
and
75 deletions
core/api/src/main/java/org/onlab/onos/net/resource/DefaultLinkResourceRequest.java
core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceAllocations.java
core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceRequest.java
core/api/src/main/java/org/onlab/onos/net/resource/DefaultLinkResourceRequest.java
0 → 100644
View file @
65e890f
package
org
.
onlab
.
onos
.
net
.
resource
;
import
java.util.Collection
;
import
java.util.HashSet
;
import
java.util.Set
;
import
org.onlab.onos.net.Link
;
import
org.onlab.onos.net.intent.IntentId
;
import
com.google.common.collect.ImmutableSet
;
/**
* Implementation of {@link LinkResourceRequest}.
*/
public
final
class
DefaultLinkResourceRequest
implements
LinkResourceRequest
{
private
final
IntentId
intentId
;
private
final
Collection
<
Link
>
links
;
private
final
Set
<
ResourceRequest
>
resources
;
/**
* Creates a new link resource request with the given ID, links, and
* resource requests.
*
* @param intentId intent ID related to this request
* @param links a set of links for the request
* @param resources a set of resources to be requested
*/
private
DefaultLinkResourceRequest
(
IntentId
intentId
,
Collection
<
Link
>
links
,
Set
<
ResourceRequest
>
resources
)
{
this
.
intentId
=
intentId
;
this
.
links
=
ImmutableSet
.
copyOf
(
links
);
this
.
resources
=
ImmutableSet
.
copyOf
(
resources
);
}
@Override
public
IntentId
intendId
()
{
return
intentId
;
}
@Override
public
Collection
<
Link
>
links
()
{
return
links
;
}
@Override
public
Set
<
ResourceRequest
>
resources
()
{
return
resources
;
}
/**
* Returns builder of link resource request.
*
* @param intentId intent ID related to this request
* @param links a set of links for the request
* @return builder of link resource request
*/
public
static
LinkResourceRequest
.
Builder
builder
(
IntentId
intentId
,
Collection
<
Link
>
links
)
{
return
new
Builder
(
intentId
,
links
);
}
/**
* Builder of link resource request.
*/
public
static
final
class
Builder
implements
LinkResourceRequest
.
Builder
{
private
IntentId
intentId
;
private
Collection
<
Link
>
links
;
private
Set
<
ResourceRequest
>
resources
;
/**
* Creates a new link resource request.
*
* @param intentId intent ID related to this request
* @param links a set of links for the request
*/
private
Builder
(
IntentId
intentId
,
Collection
<
Link
>
links
)
{
this
.
intentId
=
intentId
;
this
.
links
=
links
;
this
.
resources
=
new
HashSet
<>();
}
/**
* Adds lambda request.
*
* @return self
*/
@Override
public
Builder
addLambdaRequest
()
{
resources
.
add
(
new
LambdaResourceRequest
());
return
this
;
}
/**
* Adds bandwidth request with bandwidth value.
*
* @param bandwidth bandwidth value to be requested
* @return self
*/
@Override
public
Builder
addBandwidthRequest
(
double
bandwidth
)
{
resources
.
add
(
new
BandwidthResourceRequest
(
bandwidth
));
return
this
;
}
/**
* Returns link resource request.
*
* @return link resource request
*/
@Override
public
LinkResourceRequest
build
()
{
return
new
DefaultLinkResourceRequest
(
intentId
,
links
,
resources
);
}
}
}
core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceAllocations.java
View file @
65e890f
...
...
@@ -5,7 +5,7 @@ import org.onlab.onos.net.Link;
/**
* Representation of allocated link resources.
*/
public
interface
LinkResourceAllocations
{
public
interface
LinkResourceAllocations
extends
LinkResourceRequest
{
/**
* Returns allocated resource for the given link.
*
...
...
core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceRequest.java
View file @
65e890f
package
org
.
onlab
.
onos
.
net
.
resource
;
import
java.util.Collection
;
import
java.util.HashSet
;
import
java.util.Set
;
import
org.onlab.onos.net.Link
;
import
org.onlab.onos.net.intent.IntentId
;
import
com.google.common.collect.ImmutableSet
;
/**
* Representation of a request for link resource.
*/
public
final
class
LinkResourceRequest
implements
ResourceRequest
{
// TODO: should this class be interface?
private
final
IntentId
intentId
;
private
final
Collection
<
Link
>
links
;
private
final
Set
<
ResourceRequest
>
resources
;
/**
* Creates a new link resource request with the given ID, links, and
* resource requests.
*
* @param intentId intent ID related to this request
* @param links a set of links for the request
* @param resources a set of resources to be requested
*/
private
LinkResourceRequest
(
IntentId
intentId
,
Collection
<
Link
>
links
,
Set
<
ResourceRequest
>
resources
)
{
this
.
intentId
=
intentId
;
this
.
links
=
ImmutableSet
.
copyOf
(
links
);
this
.
resources
=
ImmutableSet
.
copyOf
(
resources
);
}
public
interface
LinkResourceRequest
extends
ResourceRequest
{
/**
* Returns the {@link IntentId} associated with the request.
*
* @return the {@link IntentId} associated with the request
*/
IntentId
intendId
()
{
return
intentId
;
}
IntentId
intendId
();
/**
* Returns the set of target links.
*
* @return the set of target links
*/
Collection
<
Link
>
links
()
{
return
links
;
}
Collection
<
Link
>
links
();
/**
* Returns the set of resource requests.
*
* @return the set of resource requests
*/
Set
<
ResourceRequest
>
resources
()
{
return
resources
;
}
/**
* Returns builder of link resource request.
*
* @param intentId intent ID related to this request
* @param links a set of links for the request
* @return builder of link resource request
*/
public
static
LinkResourceRequest
.
Builder
builder
(
IntentId
intentId
,
Collection
<
Link
>
links
)
{
return
new
Builder
(
intentId
,
links
);
}
Set
<
ResourceRequest
>
resources
();
/**
* Builder of link resource request.
*/
public
static
final
class
Builder
{
private
IntentId
intentId
;
private
Collection
<
Link
>
links
;
private
Set
<
ResourceRequest
>
resources
;
/**
* Creates a new link resource request.
*
* @param intentId intent ID related to this request
* @param links a set of links for the request
*/
private
Builder
(
IntentId
intentId
,
Collection
<
Link
>
links
)
{
this
.
intentId
=
intentId
;
this
.
links
=
links
;
this
.
resources
=
new
HashSet
<>();
}
interface
Builder
{
/**
* Adds lambda request.
*
* @return self
*/
public
Builder
addLambdaRequest
()
{
resources
.
add
(
new
LambdaResourceRequest
());
return
this
;
}
public
Builder
addLambdaRequest
();
/**
* Adds bandwidth request with bandwidth value.
...
...
@@ -110,18 +49,13 @@ public final class LinkResourceRequest implements ResourceRequest {
* @param bandwidth bandwidth value to be requested
* @return self
*/
public
Builder
addBandwidthRequest
(
double
bandwidth
)
{
resources
.
add
(
new
BandwidthResourceRequest
(
bandwidth
));
return
this
;
}
public
Builder
addBandwidthRequest
(
double
bandwidth
);
/**
* Returns link resource request.
*
* @return link resource request
*/
public
LinkResourceRequest
build
()
{
return
new
LinkResourceRequest
(
intentId
,
links
,
resources
);
}
public
LinkResourceRequest
build
();
}
}
...
...
Please
register
or
login
to post a comment