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
Yuta HIGUCHI
2014-09-25 16:06:16 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
06dc6b9c80a2553cec05acfed7291ea94c24a376
06dc6b9c
1 parent
6e89e1b0
Slice out LinkKey
Change-Id: Ibfcafd07858c5357a2321220e01ddab44f347923
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
74 additions
and
31 deletions
core/api/src/main/java/org/onlab/onos/net/LinkKey.java
core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkStore.java
core/api/src/main/java/org/onlab/onos/net/LinkKey.java
0 → 100644
View file @
06dc6b9
package
org
.
onlab
.
onos
.
net
;
import
java.util.Objects
;
import
com.google.common.base.MoreObjects
;
// TODO Consider renaming.
// it's an identifier for a Link, but it's not ElementId, so not using LinkId.
/**
* Immutable representation of a link identity.
*/
public
class
LinkKey
{
private
final
ConnectPoint
src
;
private
final
ConnectPoint
dst
;
/**
* Returns source connection point.
*
* @return source connection point
*/
public
ConnectPoint
src
()
{
return
src
;
}
/**
* Returns destination connection point.
*
* @return destination connection point
*/
public
ConnectPoint
dst
()
{
return
dst
;
}
/**
* Creates a link identifier with source and destination connection point.
*
* @param src source connection point
* @param dst destination connection point
*/
public
LinkKey
(
ConnectPoint
src
,
ConnectPoint
dst
)
{
this
.
src
=
src
;
this
.
dst
=
dst
;
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
src
(),
dst
);
}
@Override
public
boolean
equals
(
Object
obj
)
{
if
(
this
==
obj
)
{
return
true
;
}
if
(
obj
instanceof
LinkKey
)
{
final
LinkKey
other
=
(
LinkKey
)
obj
;
return
Objects
.
equals
(
this
.
src
(),
other
.
src
())
&&
Objects
.
equals
(
this
.
dst
,
other
.
dst
);
}
return
false
;
}
@Override
public
String
toString
()
{
return
MoreObjects
.
toStringHelper
(
getClass
())
.
add
(
"src"
,
src
())
.
add
(
"dst"
,
dst
)
.
toString
();
}
}
core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkStore.java
View file @
06dc6b9
...
...
@@ -3,6 +3,7 @@ package org.onlab.onos.net.trivial.impl;
import
com.google.common.collect.HashMultimap
;
import
com.google.common.collect.ImmutableSet
;
import
com.google.common.collect.Multimap
;
import
org.apache.felix.scr.annotations.Activate
;
import
org.apache.felix.scr.annotations.Component
;
import
org.apache.felix.scr.annotations.Deactivate
;
...
...
@@ -11,6 +12,7 @@ import org.onlab.onos.net.ConnectPoint;
import
org.onlab.onos.net.DefaultLink
;
import
org.onlab.onos.net.DeviceId
;
import
org.onlab.onos.net.Link
;
import
org.onlab.onos.net.LinkKey
;
import
org.onlab.onos.net.link.LinkDescription
;
import
org.onlab.onos.net.link.LinkEvent
;
import
org.onlab.onos.net.link.LinkStore
;
...
...
@@ -22,7 +24,6 @@ import org.slf4j.Logger;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
...
...
@@ -123,7 +124,7 @@ public class SimpleLinkStore
// Creates and stores the link and returns the appropriate event.
private
LinkEvent
createLink
(
ProviderId
providerId
,
LinkKey
key
,
LinkDescription
linkDescription
)
{
DefaultLink
link
=
new
DefaultLink
(
providerId
,
key
.
src
,
key
.
dst
,
DefaultLink
link
=
new
DefaultLink
(
providerId
,
key
.
src
(),
key
.
dst
()
,
linkDescription
.
type
());
synchronized
(
this
)
{
links
.
put
(
key
,
link
);
...
...
@@ -165,33 +166,4 @@ public class SimpleLinkStore
return
null
;
}
}
// Auxiliary key to track links.
private
class
LinkKey
{
final
ConnectPoint
src
;
final
ConnectPoint
dst
;
LinkKey
(
ConnectPoint
src
,
ConnectPoint
dst
)
{
this
.
src
=
src
;
this
.
dst
=
dst
;
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
src
,
dst
);
}
@Override
public
boolean
equals
(
Object
obj
)
{
if
(
this
==
obj
)
{
return
true
;
}
if
(
obj
instanceof
LinkKey
)
{
final
LinkKey
other
=
(
LinkKey
)
obj
;
return
Objects
.
equals
(
this
.
src
,
other
.
src
)
&&
Objects
.
equals
(
this
.
dst
,
other
.
dst
);
}
return
false
;
}
}
}
...
...
Please
register
or
login
to post a comment