Rice Pastry API

rice.pastry.direct
Class DirectPastryNode

java.lang.Object
  extended by java.util.Observable
      extended by rice.pastry.PastryNode
          extended by rice.pastry.direct.DirectPastryNode
All Implemented Interfaces:
Destructable, Node, NodeHandleFactory

public class DirectPastryNode
extends PastryNode

Direct pastry node. Subclasses PastryNode, and does about nothing else.

Version:
$Id: DirectPastryNode.java 3405 2006-09-14 13:21:33Z jeffh $
Author:
Sitaram Iyer

Field Summary
protected  boolean alive
           
protected  Timer timer
           
 
Fields inherited from class rice.pastry.PastryNode
apps, localhandle, logger, myNodeId
 
Constructor Summary
DirectPastryNode(Id id, NetworkSimulator sim, Environment e, NodeRecord nr)
           
 
Method Summary
 NodeHandle coalesce(NodeHandle newHandle)
          DESCRIBE THE METHOD
 void connect(NodeHandle remoteNode, AppSocketReceiver receiver, PastryAppl appl, int timeout)
          DESCRIBE THE METHOD
 void destroy()
          Method which kills a PastryNode.
 void doneNode(NodeHandle bootstrap)
           
static DirectPastryNode getCurrentNode()
           
 Logger getLogger()
           
 void initiateJoin(NodeHandle bootstrap)
          Overridden by derived classes to initiate the join process
 void initiateJoin(NodeHandle[] bootstrap)
           
 boolean isAlive()
           
 void nodeIsReady()
          Called from PastryNode after the join succeeds.
 int proximity(NodeHandle that)
          DESCRIBE THE METHOD
 NodeHandle readNodeHandle(InputBuffer buf)
          DESCRIBE THE METHOD
 void receiveMessage(Message msg)
          message receiver interface.
 void route(RouteMessage rm)
           
 ScheduledMessage scheduleMsg(Message msg, long delay)
          Schedule the specified message to be sent to the local node after a specified delay.
 ScheduledMessage scheduleMsg(Message msg, long delay, long period)
          Schedule the specified message for repeated fixed-delay delivery to the local node, beginning after the specified delay.
 ScheduledMessage scheduleMsgAtFixedRate(Message msg, long delay, long period)
          Schedule the specified message for repeated fixed-rate delivery to the local node, beginning after the specified delay.
 void send(NodeHandle nh, Message m)
          DESCRIBE THE METHOD
static DirectPastryNode setCurrentNode(DirectPastryNode dpn)
          Returns the previous one.
 
Methods inherited from class rice.pastry.PastryNode
addLeafSetListener, addLeafSetObserver, addRouteSetListener, addRouteSetObserver, buildEndpoint, deleteLeafSetListener, deleteLeafSetObserver, deleteRouteSetObserver, getEnvironment, getId, getIdFactory, getLeafSet, getLocalHandle, getLocalNodeHandle, getMessageDispatch, getNodeId, getRoutingTable, isClosest, isReady, nodeIsReady, notifyReadyObservers, process, receiveMessage, registerApp, registerApplication, registerReceiver, removeRouteSetListener, setElements, setMessageDispatch, setReady, setReady, setReadyStrategy, toString
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

alive

protected boolean alive

timer

protected Timer timer
Constructor Detail

DirectPastryNode

public DirectPastryNode(Id id,
                        NetworkSimulator sim,
                        Environment e,
                        NodeRecord nr)
Method Detail

setCurrentNode

public static DirectPastryNode setCurrentNode(DirectPastryNode dpn)
Returns the previous one.

Parameters:
dnh -
Returns:

getCurrentNode

public static DirectPastryNode getCurrentNode()

doneNode

public void doneNode(NodeHandle bootstrap)

isAlive

public boolean isAlive()

destroy

public void destroy()
Description copied from class: PastryNode
Method which kills a PastryNode. Note, this doesn't implicitly kill the environment. Make sure to call super.destroy() !!!

Specified by:
destroy in interface Destructable
Overrides:
destroy in class PastryNode

initiateJoin

public final void initiateJoin(NodeHandle bootstrap)
Description copied from class: PastryNode
Overridden by derived classes to initiate the join process

Specified by:
initiateJoin in class PastryNode
Parameters:
bootstrap - Node handle to bootstrap with.

initiateJoin

public final void initiateJoin(NodeHandle[] bootstrap)

nodeIsReady

public final void nodeIsReady()
Called from PastryNode after the join succeeds.

Specified by:
nodeIsReady in class PastryNode

scheduleMsg

public ScheduledMessage scheduleMsg(Message msg,
                                    long delay)
Schedule the specified message to be sent to the local node after a specified delay. Useful to provide timeouts.

Specified by:
scheduleMsg in class PastryNode
Parameters:
msg - a message that will be delivered to the local node after the specified delay
delay - time in milliseconds before message is to be delivered
Returns:
the scheduled event object; can be used to cancel the message

scheduleMsg

public ScheduledMessage scheduleMsg(Message msg,
                                    long delay,
                                    long period)
Schedule the specified message for repeated fixed-delay delivery to the local node, beginning after the specified delay. Subsequent executions take place at approximately regular intervals separated by the specified period. Useful to initiate periodic tasks.

Specified by:
scheduleMsg in class PastryNode
Parameters:
msg - a message that will be delivered to the local node after the specified delay
delay - time in milliseconds before message is to be delivered
period - time in milliseconds between successive message deliveries
Returns:
the scheduled event object; can be used to cancel the message

scheduleMsgAtFixedRate

public ScheduledMessage scheduleMsgAtFixedRate(Message msg,
                                               long delay,
                                               long period)
Schedule the specified message for repeated fixed-rate delivery to the local node, beginning after the specified delay. Subsequent executions take place at approximately regular intervals, separated by the specified period.

Specified by:
scheduleMsgAtFixedRate in class PastryNode
Parameters:
msg - a message that will be delivered to the local node after the specified delay
delay - time in milliseconds before message is to be delivered
period - time in milliseconds between successive message deliveries
Returns:
the scheduled event object; can be used to cancel the message

coalesce

public NodeHandle coalesce(NodeHandle newHandle)
Description copied from class: PastryNode
DESCRIBE THE METHOD

Specified by:
coalesce in class PastryNode
Parameters:
newHandle - DESCRIBE THE PARAMETER
Returns:
DESCRIBE THE RETURN VALUE

receiveMessage

public void receiveMessage(Message msg)
Description copied from class: PastryNode
message receiver interface. synchronized so that the external message processing thread and the leafset/route maintenance thread won't interfere with application messages.

Overrides:
receiveMessage in class PastryNode
Parameters:
msg - DESCRIBE THE PARAMETER

route

public void route(RouteMessage rm)

getLogger

public Logger getLogger()

proximity

public int proximity(NodeHandle that)
Description copied from class: PastryNode
DESCRIBE THE METHOD

Specified by:
proximity in class PastryNode
Parameters:
that - DESCRIBE THE PARAMETER
Returns:
DESCRIBE THE RETURN VALUE

send

public void send(NodeHandle nh,
                 Message m)
Description copied from class: PastryNode
DESCRIBE THE METHOD

Specified by:
send in class PastryNode
Parameters:
nh - DESCRIBE THE PARAMETER
m - DESCRIBE THE PARAMETER

connect

public void connect(NodeHandle remoteNode,
                    AppSocketReceiver receiver,
                    PastryAppl appl,
                    int timeout)
Description copied from class: PastryNode
DESCRIBE THE METHOD

Specified by:
connect in class PastryNode
Parameters:
remoteNode - DESCRIBE THE PARAMETER
receiver - DESCRIBE THE PARAMETER
appl - DESCRIBE THE PARAMETER
timeout - DESCRIBE THE PARAMETER

readNodeHandle

public NodeHandle readNodeHandle(InputBuffer buf)
Description copied from interface: NodeHandleFactory
DESCRIBE THE METHOD

Parameters:
buf - DESCRIBE THE PARAMETER
Returns:
DESCRIBE THE RETURN VALUE

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.