Rice Pastry API

rice.pastry
Class NodeHandle

java.lang.Object
  extended byjava.util.Observable
      extended byrice.p2p.commonapi.NodeHandle
          extended byrice.pastry.NodeHandle
All Implemented Interfaces:
LocalNodeI, MessageReceiver, java.io.Serializable
Direct Known Subclasses:
DirectNodeHandle, DistNodeHandle, LeafSetTest.TestNodeHandle

public abstract class NodeHandle
extends NodeHandle
implements MessageReceiver, LocalNodeI

Interface for handles to remote nodes.

Version:
$Id: NodeHandle.java,v 1.28 2005/06/15 17:37:20 jeffh Exp $
Author:
Andrew Ladd
See Also:
Serialized Form

Field Summary
static int LIVENESS_ALIVE
          DESCRIBE THE FIELD
static int LIVENESS_DEAD
          DESCRIBE THE FIELD
static int LIVENESS_SUSPECTED
          DESCRIBE THE FIELD
protected  PastryNode localnode
          DESCRIBE THE FIELD
 
Fields inherited from class rice.p2p.commonapi.NodeHandle
DECLARED_DEAD, DECLARED_LIVE, PROXIMITY_CHANGED
 
Constructor Summary
NodeHandle()
           
 
Method Summary
 void afterSetLocalNode()
          Method that can be overridden by handle to set isLocal, etc.
 void assertLocalNode()
          May be called from handle etc methods to ensure that local node has been set, either on construction or on deserialization/receivemsg.
 void bootstrap(Message msg)
          Method which is used by Pastry to start the bootstrapping process on the local node using this handle as the bootstrap handle.
 boolean checkLiveness()
          Method which FORCES a check of liveness of the remote node.
abstract  boolean equals(java.lang.Object obj)
          Equality operator for nodehandles.
 Id getId()
          Gets the Id attribute of the NodeHandle object
abstract  int getLiveness()
          A more detailed version of isAlive().
 PastryNode getLocalNode()
          Accessor method.
abstract  NodeId getNodeId()
          Gets the nodeId of this Pastry node.
abstract  int hashCode()
          Hash codes for nodehandles.
 boolean isAlive()
          Returns the last known liveness information about the Pastry node associated with this handle.
abstract  boolean ping()
          Ping the node.
abstract  int proximity()
          Returns the last known proximity information about the Pastry node associated with this handle.
 void setLocalNode(PastryNode pn)
          Set the local PastryNode.
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface rice.pastry.messaging.MessageReceiver
receiveMessage
 

Field Detail

localnode

protected transient PastryNode localnode
DESCRIBE THE FIELD


LIVENESS_ALIVE

public static final int LIVENESS_ALIVE
DESCRIBE THE FIELD

See Also:
Constant Field Values

LIVENESS_SUSPECTED

public static final int LIVENESS_SUSPECTED
DESCRIBE THE FIELD

See Also:
Constant Field Values

LIVENESS_DEAD

public static final int LIVENESS_DEAD
DESCRIBE THE FIELD

See Also:
Constant Field Values
Constructor Detail

NodeHandle

public NodeHandle()
Method Detail

getNodeId

public abstract NodeId getNodeId()
Gets the nodeId of this Pastry node.

Returns:
the node id.

getId

public Id getId()
Gets the Id attribute of the NodeHandle object

Specified by:
getId in class NodeHandle
Returns:
The Id value

isAlive

public final boolean isAlive()
Returns the last known liveness information about the Pastry node associated with this handle. Invoking this method does not cause network activity.

Specified by:
isAlive in class NodeHandle
Returns:
true if the node is alive, false otherwise.

getLiveness

public abstract int getLiveness()
A more detailed version of isAlive(). This can return 3 states:

Returns:
LIVENESS_ALIVE, LIVENESS_SUSPECTED, LIVENESS_DEAD

getLocalNode

public final PastryNode getLocalNode()
Accessor method.

Specified by:
getLocalNode in interface LocalNodeI
Returns:
The LocalNode value

setLocalNode

public final void setLocalNode(PastryNode pn)
Set the local PastryNode.

Specified by:
setLocalNode in interface LocalNodeI
Parameters:
pn - local pastrynode

checkLiveness

public boolean checkLiveness()
Method which FORCES a check of liveness of the remote node. Note that this method should ONLY be called by internal Pastry maintenance algorithms - this is NOT to be used by applications. Doing so will likely cause a blowup of liveness traffic.

Specified by:
checkLiveness in class NodeHandle
Returns:
true if node is currently alive.

proximity

public abstract int proximity()
Returns the last known proximity information about the Pastry node associated with this handle. Invoking this method does not cause network activity. Smaller values imply greater proximity. The exact nature and interpretation of the proximity metric implementation-specific.

Specified by:
proximity in class NodeHandle
Returns:
the proximity metric value

ping

public abstract boolean ping()
Ping the node. Refreshes the cached liveness status and proximity value of the Pastry node associated with this. Invoking this method causes network activity.

Returns:
true if node is currently alive.

afterSetLocalNode

public void afterSetLocalNode()
Method that can be overridden by handle to set isLocal, etc.


assertLocalNode

public final void assertLocalNode()
May be called from handle etc methods to ensure that local node has been set, either on construction or on deserialization/receivemsg.

Specified by:
assertLocalNode in interface LocalNodeI

equals

public abstract boolean equals(java.lang.Object obj)
Equality operator for nodehandles.

Parameters:
obj - a nodehandle object
Returns:
true if they are equal, false otherwise.

bootstrap

public void bootstrap(Message msg)
Method which is used by Pastry to start the bootstrapping process on the local node using this handle as the bootstrap handle. Default behavior is simply to call receiveMessage(msg), but transport layer implementations may care to perform other tasks by overriding this method, since the node is not technically part of the ring yet.

Parameters:
msg - the bootstrap message.

hashCode

public abstract int hashCode()
Hash codes for nodehandles.

Returns:
a hash code.

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection