Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rice.pastry.leafset
Class LeafSet

    java.lang.Object
      java.util.Observable
          rice.pastry.leafset.LeafSet

All Implemented Interfaces:
  java.io.Serializable

public class LeafSet
extends java.util.Observable
implements java.io.Serializable

A class for representing and manipulating the leaf set. The leafset is not strictly a set: when the ring is small, a node may appear in both the cw and the ccw half of the "set".

Version:
  $Id: LeafSet.java,v 1.45 2005/03/11 00:58:04 jeffh Exp $
Author:
  Andrew Ladd, Peter Druschel
See Also:
  Serialized Form

Constructor Summary
`LeafSet(NodeHandle localNode, int size)` Constructor.
`LeafSet(NodeHandle localNode, int size, boolean observe)` Constructor for LeafSet.

Method Summary
`void` | `addObserver(java.util.Observer o)` Add observer method.
`int` | `ccwSize()` Gets the current counterclockwise size.
`LeafSet` | `copy()` DESCRIBE THE METHOD
`int` | `cwSize()` Gets the current clockwise size.
`void` | `deleteObserver(java.util.Observer o)` Delete observer method.
`boolean` | `directTest(NodeHandle handle)` DESCRIBE THE METHOD
`NodeHandle` | `get(int index)` Finds the NodeHandle at a given index.
`int` | `getIndex(NodeHandle nh)` Gets the index of the element with the given node id.
`boolean` | `isComplete()` Gets the Complete attribute of the LeafSet object
`protected boolean` | `isProperlyRemoved(NodeHandle handle)` Gets the ProperlyRemoved attribute of the LeafSet object
`int` | `maxSize()` Gets the maximal size of the leaf set.
`boolean` | `member(NodeHandle nid)` Verifies if the set contains this particular handle.
`boolean` | `member(NodeId nid)` Verifies if the set contains this particular id.
`boolean` | `merge(LeafSet remotels, NodeHandle from, RoutingTable routeTable, PastrySecurityManager security, boolean testOnly, java.util.Set insertedHandles)` Merge a remote leafset into this
`int` | `mostSimilar(Id nid)` Numerically closests node to a given a node in the leaf set.
`NodeSet` | `neighborSet(int max)` compute an ordered set of nodes that are neighbors of this local node, in order of numerical closeness to the local node
`boolean` | `overlaps()` Test if the leafset overlaps
`boolean` | `put(NodeHandle handle)` Puts a NodeHandle into the set.
`IdRange` | `range(NodeHandle n, int r)` range computes the range of keys for which node n is a i-root, 0<=i<=r a node is the r-root for a key of the node becomes the numerically closest node to the key when i-roots for the key fail, O<=i
`IdRange` | `range(NodeHandle n, int r, boolean cw)` range computes the ranges of keys for which node n is a r-root a node is the r-root for a key of the node becomes the numerically closest node to the key when i-roots for the key fail, O<=i
`NodeHandle` | `remove(NodeHandle nh)` Removes a node id and its handle from the set.
`NodeSet` | `replicaSet(Id key, int max)` compute an ordered set of nodes, in order of numerical closeness to a given key
`int` | `size()` Gets the current size of the leaf set.
`boolean` | `test(NodeHandle handle)` Test if a put of the given NodeHandle would succeed.
`protected boolean` | `testOtherSet(SimilarSet set, NodeHandle handle)` A unit test for JUnit
`java.lang.String` | `toString()` Returns a string representation of the leaf set

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`

Constructor Detail

### LeafSet

    public LeafSet(NodeHandle localNode,
                   int size)

  Constructor.

Parameters:
  `size` - the size of the leaf set.
  `localNode` - DESCRIBE THE PARAMETER

### LeafSet

    public LeafSet(NodeHandle localNode,
                   int size,
                   boolean observe)

  Constructor for LeafSet.

Parameters:
  `localNode` - DESCRIBE THE PARAMETER
  `size` - DESCRIBE THE PARAMETER
  `observe` - DESCRIBE THE PARAMETER

Method Detail

### isComplete

    public boolean isComplete()

  Gets the Complete attribute of the LeafSet object

  Returns:
    The Complete value

### getIndex

    public int getIndex(NodeHandle nh)
                 throws java.util.NoSuchElementException

  Gets the index of the element with the given node id.

  Parameters:
    `nh` - DESCRIBE THE PARAMETER
  Returns:
    the index or throws a NoSuchElementException
  Throws:
    `java.util.NoSuchElementException` - DESCRIBE THE EXCEPTION

### get

    public NodeHandle get(int index)

  Finds the NodeHandle at a given index.

  Parameters:
    `index` - an index.
  Returns:
    the handle associated with that index.

### isProperlyRemoved

    protected boolean isProperlyRemoved(NodeHandle handle)

  Gets the ProperlyRemoved attribute of the LeafSet object

  Parameters:
    `handle` - DESCRIBE THE PARAMETER
  Returns:
    The ProperlyRemoved value

### put

    public boolean put(NodeHandle handle)

  Puts a NodeHandle into the set.

  Parameters:
    `handle` - the handle to put.
  Returns:
    true if successful, false otherwise.

### test

    public boolean test(NodeHandle handle)

  Test if a put of the given NodeHandle would succeed.

  Parameters:
    `handle` - the handle to test.
  Returns:
    true if a put would succeed, false otherwise.

### overlaps

    public boolean overlaps()

  Test if the leafset overlaps

  Returns:
    true if the most distant cw member appears in the ccw set or vice versa, false otherwise

### member

    public boolean member(NodeHandle nid)

  Verifies if the set contains this particular handle.

  Parameters:
    `nid` - a NodeHandle.
  Returns:
    true if that NodeHandle is in the set, false otherwise.

### member

    public boolean member(NodeId nid)

  Verifies if the set contains this particular id.

  Parameters:
    `nid` - a node id.
  Returns:
    true if that node id is in the set, false otherwise.

### remove

    public NodeHandle remove(NodeHandle nh)

  Removes a node id and its handle from the set.

  Parameters:
    `nh` - DESCRIBE THE PARAMETER
  Returns:
    the node handle removed or null if nothing.

### maxSize

    public int maxSize()

  Gets the maximal size of the leaf set.

  Returns:
    the size.

### size

    public int size()

  Gets the current size of the leaf set.

  Returns:
    the size.

### cwSize

    public int cwSize()

  Gets the current clockwise size.

  Returns:
    the size.

### ccwSize

    public int ccwSize()

  Gets the current counterclockwise size.

  Returns:
    the size.

### mostSimilar

    public int mostSimilar(Id nid)

  Numerically closests node to a given a node in the leaf set.

  Parameters:
    `nid` - a node id.
  Returns:
    the index of the numerically closest node (0 if baseId is the closest).

### neighborSet

    public NodeSet neighborSet(int max)

  compute an ordered set of nodes that are neighbors of this local node, in order of numerical closeness to the local node

  Parameters:
    `max` - the maximal size of the set requested
  Returns:
    the ordered set of nodehandles

### replicaSet

    public NodeSet replicaSet(Id key,
                              int max)

  compute an ordered set of nodes, in order of numerical closeness to a given key

  Parameters:
    `key` - the key
    `max` - the maximal size of the set requested
  Returns:
    the ordered set of nodehandles

### range

    public IdRange range(NodeHandle n,
                         int r)

  range computes the range of keys for which node n is a i-root, 0<=i<=r a node is the r-root for a key of the node becomes the numerically closest node to the key when i-roots for the key fail, O<=i
  Parameters:
    `n` - the nodehandle
    `r` -
  Returns:
    the range of keys, or null if n is not a member of the leafset, or if the range cannot be computed

### range

    public IdRange range(NodeHandle n,
                         int r,
                         boolean cw)

  range computes the ranges of keys for which node n is a r-root a node is the r-root for a key of the node becomes the numerically closest node to the key when i-roots for the key fail, O<=i
  Parameters:
    `n` - the nodehandle
    `r` -
    `cw` - if true returns the clockwise range, else the counterclockwise range
  Returns:
    the range of keys, or null if n is not a member of the leafset, or if the range cannot be computed

### merge

    public boolean merge(LeafSet remotels,
                         NodeHandle from,
                         RoutingTable routeTable,
                         PastrySecurityManager security,
                         boolean testOnly,
                         java.util.Set insertedHandles)

  Merge a remote leafset into this

  Parameters:
    `remotels` - the remote leafset
    `from` - the node from which we received the leafset
    `routeTable` - the routing table
    `security` - the security manager
    `testOnly` - if true, do not change the leafset
    `insertedHandles` - if not null, a Set that contains, upon return of this method, the nodeHandles that would be inserted into this LeafSet if testOnly is true
  Returns:
    true if the local leafset changed

### addObserver

    public void addObserver(java.util.Observer o)

  Add observer method.

  Parameters:
    `o` - the observer to add.

### deleteObserver

    public void deleteObserver(java.util.Observer o)

  Delete observer method.

  Parameters:
    `o` - the observer to delete.

### toString

    public java.lang.String toString()

  Returns a string representation of the leaf set

  Returns:
    DESCRIBE THE RETURN VALUE

### testOtherSet

    protected boolean testOtherSet(SimilarSet set,
                                   NodeHandle handle)

  A unit test for JUnit

  Parameters:
    `set` - DESCRIBE THE PARAMETER
    `handle` - DESCRIBE THE PARAMETER
  Returns:
    DESCRIBE THE RETURN VALUE

### directTest

    public boolean directTest(NodeHandle handle)

  DESCRIBE THE METHOD

  Parameters:
    `handle` - DESCRIBE THE PARAMETER
  Returns:
    DESCRIBE THE RETURN VALUE

### copy

    public LeafSet copy()

  DESCRIBE THE METHOD

  Returns:
    DESCRIBE THE RETURN VALUE

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.