Rice Pastry API

rice.pastry.routing
Class RouteSet

java.lang.Object
  extended byrice.pastry.routing.RouteSet
All Implemented Interfaces:
NodeHandleSet, NodeSetI, java.util.Observer, java.io.Serializable

public class RouteSet
extends java.lang.Object
implements NodeSetI, java.io.Serializable, java.util.Observer

A set of nodes typically stored in the routing table. The set contains a bounded number of the closest node handles. Since proximity value can change unpredictably, we don't keep the set in sorted order.

Version:
$Id: RouteSet.java 3274 2006-05-15 16:17:47Z jeffh $
Author:
Andrew Ladd, Peter Druschel
See Also:
Serialized Form

Field Summary
static short TYPE
          DESCRIBE THE FIELD
 
Constructor Summary
RouteSet(InputBuffer buf, NodeHandleFactory nhf)
          Constructor for RouteSet.
RouteSet(int maxSize)
          Constructor.
 
Method Summary
 NodeHandle closestNode()
          Return the closest live node in the set.
 NodeHandle closestNode(int minLiveness)
          Return the closest live node in the set.
 NodeHandle get(Id nid)
          Returns the node handle with the matching node id or null if none exists.
 NodeHandle get(int i)
          Returns the node in the ith position in the set.
 NodeHandle getHandle(Id id)
          Finds the NodeHandle associated with the Id.
 NodeHandle getHandle(int i)
          Gets the ith element in the set.
 int getIndex(Id nid)
          Get the index of the node id.
 int getIndex(NodeHandle nh)
          Get the index of the node id.
 int getIndexHandle(Id id)
          Gets the index of the element with the given node id.
 short getType()
          Gets the Type attribute of the RouteSet object
 boolean member(Id nid)
          Membership test.
 boolean member(NodeHandle nh)
          Membership test.
 boolean memberHandle(Id id)
          Verifies if the set contains this particular id.
 void pingAllNew()
          Pings all new nodes in the RouteSet.
 boolean put(NodeHandle handle)
          Puts a node into the set.
 boolean putHandle(NodeHandle handle)
          Puts a NodeHandle into the set.
 NodeHandle remove(Id nid)
          Removes a node from a set.
 NodeHandle remove(NodeHandle nh)
          Removes a node from a set.
 NodeHandle removeHandle(Id id)
          Removes a node id and its handle from the set.
 void serialize(OutputBuffer buf)
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + maxSize + theSize + closest + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle 1st + ...
 void setRoutingTable(RoutingTable rt)
          Sets the RoutingTable attribute of the RouteSet object
 int size()
          Return the current size of the set.
 java.lang.String toString()
          DESCRIBE THE METHOD
 void update(java.util.Observable o, java.lang.Object arg)
          Is called by the Observer pattern whenever the liveness or proximity of a registered node handle is changed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE

public static final short TYPE
DESCRIBE THE FIELD

See Also:
Constant Field Values
Constructor Detail

RouteSet

public RouteSet(int maxSize)
Constructor.

Parameters:
maxSize - the maximum number of nodes that fit in this set.

RouteSet

public RouteSet(InputBuffer buf,
                NodeHandleFactory nhf)
         throws java.io.IOException
Constructor for RouteSet.

Parameters:
buf - DESCRIBE THE PARAMETER
nhf - DESCRIBE THE PARAMETER
Throws:
java.io.IOException - DESCRIBE THE EXCEPTION
Method Detail

get

public NodeHandle get(int i)
Returns the node in the ith position in the set.

Specified by:
get in interface NodeSetI
Parameters:
i - DESCRIBE THE PARAMETER
Returns:
the ith node.

get

public NodeHandle get(Id nid)
Returns the node handle with the matching node id or null if none exists.

Specified by:
get in interface NodeSetI
Parameters:
nid - the node id.
Returns:
the node handle.

getIndex

public int getIndex(Id nid)
Get the index of the node id.

Specified by:
getIndex in interface NodeSetI
Parameters:
nid - DESCRIBE THE PARAMETER
Returns:
the node.

getIndex

public int getIndex(NodeHandle nh)
Get the index of the node id.

Specified by:
getIndex in interface NodeSetI
Parameters:
nh - DESCRIBE THE PARAMETER
Returns:
the node.

getHandle

public NodeHandle getHandle(Id id)
Finds the NodeHandle associated with the Id.

Specified by:
getHandle in interface NodeHandleSet
Parameters:
id - a node id.
Returns:
the handle associated with that id or null if no such handle is found.

getHandle

public NodeHandle getHandle(int i)
Gets the ith element in the set.

Specified by:
getHandle in interface NodeHandleSet
Parameters:
i - an index.
Returns:
the handle associated with that id or null if no such handle is found.

getIndexHandle

public int getIndexHandle(Id id)
                   throws java.util.NoSuchElementException
Gets the index of the element with the given node id.

Specified by:
getIndexHandle in interface NodeHandleSet
Parameters:
id - the id.
Returns:
the index or throws a NoSuchElementException.
Throws:
java.util.NoSuchElementException - DESCRIBE THE EXCEPTION

getType

public short getType()
Gets the Type attribute of the RouteSet object

Specified by:
getType in interface NodeHandleSet
Returns:
The Type value

setRoutingTable

public void setRoutingTable(RoutingTable rt)
Sets the RoutingTable attribute of the RouteSet object

Parameters:
rt - The new RoutingTable value

toString

public java.lang.String toString()
DESCRIBE THE METHOD

Returns:
DESCRIBE THE RETURN VALUE

put

public boolean put(NodeHandle handle)
Puts a node into the set. The insertion succeeds either if the set is below is maximal size or if the handle is closer than the most distant member in the set.

Specified by:
put in interface NodeSetI
Parameters:
handle - the handle to put.
Returns:
true if the put succeeded, false otherwise.

update

public void update(java.util.Observable o,
                   java.lang.Object arg)
Is called by the Observer pattern whenever the liveness or proximity of a registered node handle is changed.

Specified by:
update in interface java.util.Observer
Parameters:
o - The node handle
arg - the event type (PROXIMITY_CHANGE, DECLARED_LIVE, DECLARED_DEAD)

remove

public NodeHandle remove(Id nid)
Removes a node from a set.

Parameters:
nid - the node id to remove.
Returns:
the removed handle or null.

remove

public NodeHandle remove(NodeHandle nh)
Removes a node from a set.

Specified by:
remove in interface NodeSetI
Parameters:
nh - DESCRIBE THE PARAMETER
Returns:
the removed handle or null.

member

public boolean member(NodeHandle nh)
Membership test.

Specified by:
member in interface NodeSetI
Parameters:
nh - DESCRIBE THE PARAMETER
Returns:
true if it is a member, false otherwise.

member

public boolean member(Id nid)
Membership test.

Parameters:
nid - the node id to membership of.
Returns:
true if it is a member, false otherwise.

size

public int size()
Return the current size of the set.

Specified by:
size in interface NodeSetI
Returns:
the size.

pingAllNew

public void pingAllNew()
Pings all new nodes in the RouteSet. No longer- Called from RouteMaintenance.


closestNode

public NodeHandle closestNode()
Return the closest live node in the set.

Returns:
the closest node, or null if no live node exists in the set.

closestNode

public NodeHandle closestNode(int minLiveness)
Return the closest live node in the set.

Parameters:
minLiveness - DESCRIBE THE PARAMETER
Returns:
the closest node, or null if no live node exists in the set.

putHandle

public boolean putHandle(NodeHandle handle)
Puts a NodeHandle into the set.

Specified by:
putHandle in interface NodeHandleSet
Parameters:
handle - the handle to put.
Returns:
true if the put succeeded, false otherwise.

memberHandle

public boolean memberHandle(Id id)
Verifies if the set contains this particular id.

Specified by:
memberHandle in interface NodeHandleSet
Parameters:
id - a node id.
Returns:
true if that node id is in the set, false otherwise.

removeHandle

public NodeHandle removeHandle(Id id)
Removes a node id and its handle from the set.

Specified by:
removeHandle in interface NodeHandleSet
Parameters:
id - DESCRIBE THE PARAMETER
Returns:
the node handle removed or null if nothing.

serialize

public void serialize(OutputBuffer buf)
               throws java.io.IOException
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + maxSize + theSize + closest + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle 1st + ... + + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle theSize-th + ... + + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Specified by:
serialize in interface NodeHandleSet
Parameters:
buf - DESCRIBE THE PARAMETER
Throws:
java.io.IOException - DESCRIBE THE EXCEPTION

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection