ePOST 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, MessageReceiver

public class DirectPastryNode
extends PastryNode

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

Version:
$Id: DirectPastryNode.java 3062 2006-02-14 16:04:25Z jeffh $
Author:
Sitaram Iyer

Field Summary
protected  boolean alive
           
static DirectPastryNode currentNode
          Used for proximity calculation of DirectNodeHandle.
protected  Timer timer
           
 
Fields inherited from class rice.pastry.PastryNode
apps, localhandle, logger, myNodeId
 
Constructor Summary
DirectPastryNode(NodeId id, NetworkSimulator sim, Environment e, NodeRecord nr)
           
 
Method Summary
 NodeHandle coalesce(NodeHandle newHandle)
           
 void destroy()
          Method which kills a PastryNode.
 void doneNode(NodeHandle bootstrap)
           
 Logger getLogger()
           
 void initiateJoin(NodeHandle bootstrap)
          Overridden by derived classes to initiate the join process
 void initiateJoin(NodeHandle[] bootstrap)
          Sends an InitiateJoin message to itself.
 boolean isAlive()
           
 void nodeIsReady()
          Called from PastryNode after the join succeeds.
 void receiveMessage(Message msg)
          message receiver interface.
 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 handle, Message message)
           
 void setDirectElements()
           
 
Methods inherited from class rice.pastry.PastryNode
addLeafSetListener, addLeafSetObserver, addRouteSetListener, addRouteSetObserver, deleteLeafSetListener, deleteLeafSetObserver, deleteRouteSetObserver, getEnvironment, getId, getIdFactory, getLeafSet, getLocalHandle, getLocalNodeHandle, getMessageDispatch, getNodeId, getRoutingTable, isClosest, isReady, nodeIsReady, process, registerApp, registerApplication, registerApplication, registerReceiver, removeRouteSetListener, setElements, setMessageDispatch, setReady, setReady, 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

currentNode

public static DirectPastryNode currentNode
Used for proximity calculation of DirectNodeHandle. This will probably go away when we switch to a byte-level protocol.


alive

protected boolean alive

timer

protected Timer timer
Constructor Detail

DirectPastryNode

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

setDirectElements

public void setDirectElements()

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)
Sends an InitiateJoin message to itself.

Parameters:
bootstrap - Node handle to bootstrap with.

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)
Specified by:
coalesce in class PastryNode

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.

Specified by:
receiveMessage in interface MessageReceiver
Overrides:
receiveMessage in class PastryNode
Parameters:
msg - the message.

getLogger

public Logger getLogger()

send

public void send(NodeHandle handle,
                 Message message)
Specified by:
send in class PastryNode

ePOST API

Copyright © 2001-2005 - Rice Pastry.