|
ePOST API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object rice.pastry.PastryNodeFactory
public abstract class PastryNodeFactory
The interface to an object which can construct PastryNodes.
Field Summary | |
---|---|
protected Environment |
environment
|
protected Logger |
logger
|
protected int |
lSetSize
|
protected java.util.Hashtable |
pingCache
Hashtable which keeps track of temporary ping values, which are only used during the getNearest() method |
protected int |
rtBase
|
protected int |
rtMax
|
Constructor Summary | |
---|---|
PastryNodeFactory(Environment env)
|
Method Summary | |
---|---|
Environment |
getEnvironment()
|
abstract LeafSet |
getLeafSet(NodeHandle handle)
This method returns the remote leafset of the provided handle to the caller, in a protocol-dependent fashion. |
abstract CancellableTask |
getLeafSet(NodeHandle handle,
Continuation c)
Non-blocking version. |
NodeHandle |
getNearest(NodeHandle local,
NodeHandle seed)
This method implements the algorithm in the Pastry locality paper for finding a close node the the current node through iterative leafset and route row requests. |
abstract int |
getProximity(NodeHandle local,
NodeHandle handle)
This method determines and returns the proximity of the current local node the provided NodeHandle. |
abstract 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. |
abstract CancellableTask |
getRouteRow(NodeHandle handle,
int row,
Continuation c)
Non-blocking version. |
abstract PastryNode |
newNode(NodeHandle bootstrap)
Call this to construct a new node of the type chosen by the factory. |
abstract PastryNode |
newNode(NodeHandle bootstrap,
NodeId nodeId)
Call this to construct a new node of the type chosen by the factory, with the given nodeId. |
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 java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final int rtMax
protected final int lSetSize
protected final int rtBase
protected java.util.Hashtable pingCache
protected Environment environment
protected Logger logger
Constructor Detail |
---|
public PastryNodeFactory(Environment env)
Method Detail |
---|
public abstract PastryNode newNode(NodeHandle bootstrap)
bootstrap
- The node handle to bootstrap off ofpublic abstract PastryNode newNode(NodeHandle bootstrap, NodeId nodeId)
bootstrap
- The node handle to bootstrap off ofnodeId
- The nodeId of the new nodepublic abstract LeafSet getLeafSet(NodeHandle handle) throws java.io.IOException
handle
- The node to connect to
java.io.IOException
public abstract CancellableTask getLeafSet(NodeHandle handle, Continuation c)
handle
- c
-
java.io.IOException
public abstract RouteSet[] getRouteRow(NodeHandle handle, int row) throws java.io.IOException
handle
- The node to connect torow
- The row number to retrieve
java.io.IOException
public abstract CancellableTask getRouteRow(NodeHandle handle, int row, Continuation c)
handle
- row
- c
-
java.io.IOException
public abstract int getProximity(NodeHandle local, NodeHandle handle)
handle
- The handle to determine the proximity of
public Environment getEnvironment()
protected int proximity(NodeHandle local, NodeHandle handle)
handle
- The handle to ping
public NodeHandle getNearest(NodeHandle local, NodeHandle seed)
seed
- Any member of the pastry ring
|
ePOST API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |