ePOST API

rice.pastry.direct
Class DirectPastryNodeFactory

java.lang.Object
  extended by rice.pastry.PastryNodeFactory
      extended by rice.pastry.direct.DirectPastryNodeFactory

public class DirectPastryNodeFactory
extends PastryNodeFactory

Pastry node factory for direct connections between nodes (local instances).

Version:
$Id: DirectPastryNodeFactory.java 2904 2006-01-10 21:50:37Z jeffh $
Author:
Andrew Ladd, Sitaram Iyer, Rongmei Zhang/Y. Charlie Hu

Field Summary
 
Fields inherited from class rice.pastry.PastryNodeFactory
environment, logger, lSetSize, pingCache, rtBase, rtMax
 
Constructor Summary
DirectPastryNodeFactory(NodeIdFactory nf, NetworkSimulator sim, Environment env)
          Main constructor.
 
Method Summary
 LeafSet getLeafSet(NodeHandle handle)
          This method returns the remote leafset of the provided handle to the caller, in a protocol-dependent fashion.
 CancellableTask getLeafSet(NodeHandle handle, Continuation c)
          Non-blocking version.
 NetworkSimulator getNetworkSimulator()
          Getter for the NetworkSimulator.
 int getProximity(NodeHandle local, NodeHandle remote)
          This method determines and returns the proximity of the current local node the provided NodeHandle.
 RouteSet[] getRouteRow(NodeHandle handle, int row)
          This method returns the remote route row of the provided handle to the caller, in a protocol-dependent fashion.
 CancellableTask getRouteRow(NodeHandle handle, int row, Continuation c)
          Non-blocking version.
 PastryNode newNode(NodeHandle bootstrap)
          Manufacture a new Pastry node.
 PastryNode newNode(NodeHandle bootstrap, NodeId nodeId)
          Manufacture a new Pastry node.
protected  int proximity(NodeHandle local, NodeHandle handle)
          Method which checks to see if we have a cached value of the remote ping, and if not, initiates a ping and then caches the value
 
Methods inherited from class rice.pastry.PastryNodeFactory
getEnvironment, getNearest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DirectPastryNodeFactory

public DirectPastryNodeFactory(NodeIdFactory nf,
                               NetworkSimulator sim,
                               Environment env)
Main constructor.

Parameters:
nf - the NodeIdFactory
sim - the NetworkSimulator
e - the Enviornment
Method Detail

getNetworkSimulator

public NetworkSimulator getNetworkSimulator()
Getter for the NetworkSimulator.

Returns:
the NetworkSimulator we are using.

newNode

public PastryNode newNode(NodeHandle bootstrap)
Manufacture a new Pastry node.

Specified by:
newNode in class PastryNodeFactory
Parameters:
bootstrap - The node handle to bootstrap off of
Returns:
a new PastryNode

newNode

public PastryNode newNode(NodeHandle bootstrap,
                          NodeId nodeId)
Manufacture a new Pastry node.

Specified by:
newNode in class PastryNodeFactory
Parameters:
bootstrap - The node handle to bootstrap off of
nodeId - The nodeId of the new node
Returns:
a new PastryNode

getLeafSet

public LeafSet getLeafSet(NodeHandle handle)
                   throws java.io.IOException
This method returns the remote leafset of the provided handle to the caller, in a protocol-dependent fashion. Note that this method may block while sending the message across the wire.

Specified by:
getLeafSet in class PastryNodeFactory
Parameters:
handle - The node to connect to
Returns:
The leafset of the remote node
Throws:
java.io.IOException

getLeafSet

public CancellableTask getLeafSet(NodeHandle handle,
                                  Continuation c)
Description copied from class: PastryNodeFactory
Non-blocking version.

Specified by:
getLeafSet in class PastryNodeFactory
Returns:

getRouteRow

public RouteSet[] getRouteRow(NodeHandle handle,
                              int row)
                       throws java.io.IOException
This method returns the remote route row of the provided handle to the caller, in a protocol-dependent fashion. Note that this method may block while sending the message across the wire.

Specified by:
getRouteRow in class PastryNodeFactory
Parameters:
handle - The node to connect to
row - The row number to retrieve
Returns:
The route row of the remote node
Throws:
java.io.IOException

getRouteRow

public CancellableTask getRouteRow(NodeHandle handle,
                                   int row,
                                   Continuation c)
Description copied from class: PastryNodeFactory
Non-blocking version.

Specified by:
getRouteRow in class PastryNodeFactory
Returns:

getProximity

public int getProximity(NodeHandle local,
                        NodeHandle remote)
This method determines and returns the proximity of the current local node the provided NodeHandle. This will need to be done in a protocol- dependent fashion and may need to be done in a special way.

Specified by:
getProximity in class PastryNodeFactory
Parameters:
handle - The handle to determine the proximity of
Returns:
The proximity of the provided handle

proximity

protected int proximity(NodeHandle local,
                        NodeHandle handle)
Description copied from class: PastryNodeFactory
Method which checks to see if we have a cached value of the remote ping, and if not, initiates a ping and then caches the value

Overrides:
proximity in class PastryNodeFactory
handle - The handle to ping
Returns:
The proximity of the handle

ePOST API

Copyright © 2001-2005 - Rice Pastry.