|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.Observable rice.pastry.routing.RoutingTable
The Pastry routing table.
The size of this table is determined by two constants:
nodeIdBitLength
which determines
the number of bits in a node id (which we call n ).
idBaseBitLength
which is the base
that table is stored in (which we call b ).
We write out node ids as numbers in base 2 b . They will have length D = ceiling(log 2 b 2 n ) . The table is stored from 0...(D-1) by 0...(2 b - 1) . The table stores a set of node handles at each entry. At address [index][digit] , we store the set of handles were the most significant (numerically) difference from the node id that the table routes for at the index th digit and the differing digit is digit . An index of 0 is the least significant digit.
Field Summary | |
byte |
idBaseBitLength
The routing calculations will occur in base 2 idBaseBitLength |
NodeHandle |
myNodeHandle
DESCRIBE THE FIELD |
Constructor Summary | |
RoutingTable(NodeHandle me,
int max,
byte base,
Environment env)
Constructor. |
Method Summary | |
void |
addNodeSetListener(NodeSetListener listener)
Adds a feature to the NodeSetListener attribute of the RoutingTable object |
void |
addObserver(java.util.Observer o)
Deprecated. use addNodeSetListener |
NodeSet |
alternateRoutes(Id key,
int max)
Determines a set of alternate hops towards a given key. |
byte |
baseBitLength()
return the bit length of the base |
NodeHandle |
bestAlternateRoute(Id key)
Determines an alternate hop numerically closer to the key than the one we are at. |
NodeHandle |
bestAlternateRoute(int minLiveness,
Id key)
Determines an alternate hop numerically closer to the key than the one we are at. |
void |
deleteObserver(java.util.Observer o)
Deprecated. use deleteNodeSetListener |
NodeHandle |
get(Id nid)
Gets the node handle associated with a given id. |
RouteSet |
getBestEntry(Id key)
Gets the set of handles that match at least one more digit of the key than the local Id. |
RouteSet |
getRouteSet(int index,
int digit)
Gets the set of handles at a particular entry in the table. |
RouteSet[] |
getRow(int i)
Get a row from the routing table. |
void |
nodeSetUpdate(java.lang.Object o,
NodeHandle handle,
boolean added)
Is called by the Observer pattern whenever a RouteSet in this table has changed. |
int |
numColumns()
return ths number of columns in the routing table |
int |
numEntries()
DESCRIBE THE METHOD |
byte |
numRows()
return the number of rows in the routing table |
int |
numUniqueEntries()
DESCRIBE THE METHOD |
void |
put(NodeHandle handle)
Puts a handle into the routing table. |
NodeHandle |
remove(NodeHandle nh)
Removes a node id from the table. |
void |
removeNodeSetListener(NodeSetListener listener)
DESCRIBE THE METHOD |
java.lang.String |
toString()
produces a String representation of the routing table, showing the number of node handles in each entry |
Methods inherited from class java.util.Observable |
clearChanged, countObservers, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public byte idBaseBitLength
public NodeHandle myNodeHandle
Constructor Detail |
public RoutingTable(NodeHandle me, int max, byte base, Environment env)
me
- the node id for this routing table.max
- the maximum number of entries at each table slot.base
- DESCRIBE THE PARAMETERenv
- DESCRIBE THE PARAMETERMethod Detail |
public RouteSet getRouteSet(int index, int digit)
index
- the index of the digit in base 2 idBaseBitLength
.0 is the least significant.digit
- ranges from 0... 2 idBaseBitLength - 1 .
Selects which digit to use.
public RouteSet getBestEntry(Id key)
key
- the key
public NodeHandle get(Id nid)
nid
- a node id
public RouteSet[] getRow(int i)
i
- which row
public int numColumns()
public byte numRows()
public byte baseBitLength()
public NodeHandle bestAlternateRoute(Id key)
key
- the key
public NodeHandle bestAlternateRoute(int minLiveness, Id key)
key
- the keyminLiveness
- DESCRIBE THE PARAMETER
public NodeSet alternateRoutes(Id key, int max)
key
- the keymax
- the maximal number of alternate hops requested
public void put(NodeHandle handle)
handle
- the handle to put.public NodeHandle remove(NodeHandle nh)
nh
- DESCRIBE THE PARAMETER
public void nodeSetUpdate(java.lang.Object o, NodeHandle handle, boolean added)
o
- the RouteSethandle
- DESCRIBE THE PARAMETERadded
- DESCRIBE THE PARAMETERpublic java.lang.String toString()
public int numEntries()
public int numUniqueEntries()
public void addObserver(java.util.Observer o)
o
- The feature to be added to the Observer attributepublic void deleteObserver(java.util.Observer o)
o
- DESCRIBE THE PARAMETERpublic void addNodeSetListener(NodeSetListener listener)
addNodeSetListener
in interface NodeSetEventSource
listener
- The feature to be added to the NodeSetListener attributepublic void removeNodeSetListener(NodeSetListener listener)
removeNodeSetListener
in interface NodeSetEventSource
listener
- DESCRIBE THE PARAMETER
|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |