Rice Pastry API

rice.pastry.testing
Class HelloWorldApp

java.lang.Object
  |
  +--rice.pastry.client.PastryAppl
        |
        +--rice.pastry.testing.HelloWorldApp
All Implemented Interfaces:
MessageReceiver

public class HelloWorldApp
extends PastryAppl

A hello world example for pastry. This is the per-node app object.

Version:
$Id: HelloWorldApp.java,v 1.11 2003/06/12 17:30:18 amislove Exp $
Author:
Sitaram Iyer

Field Summary
 
Fields inherited from class rice.pastry.client.PastryAppl
address, instance, thePastryNode
 
Constructor Summary
HelloWorldApp(rice.pastry.PastryNode pn)
           
 
Method Summary
 boolean enrouteMessage(rice.pastry.messaging.Message msg, rice.pastry.Id key, rice.pastry.NodeId nextHop, rice.pastry.routing.SendOptions opt)
          Invoked on intermediate nodes in routing path.
 rice.pastry.messaging.Address getAddress()
          Get address.
 rice.pastry.security.Credentials getCredentials()
          Get credentials.
 void leafSetChange(rice.pastry.NodeHandle nh, boolean wasAdded)
          Invoked upon change to leafset.
 void messageForAppl(rice.pastry.messaging.Message msg)
          Invoked on destination node when a message arrives.
 void notifyReady()
          Invoked by {RMI,Direct}PastryNode when the node has something in its leaf set, and has become ready to receive application messages.
 void routeSetChange(rice.pastry.NodeHandle nh, boolean wasAdded)
          Invoked upon change to routing table.
 void sendRndMsg(java.util.Random rng)
          Sends a message to a randomly chosen node.
 
Methods inherited from class rice.pastry.client.PastryAppl
getLeafSet, getNodeHandle, getNodeId, getRoutingTable, isClosest, receiveMessage, registerReceiver, routeMsg, routeMsgDirect, sendMessage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HelloWorldApp

public HelloWorldApp(rice.pastry.PastryNode pn)
Method Detail

sendRndMsg

public void sendRndMsg(java.util.Random rng)
Sends a message to a randomly chosen node. Yeah, for fun.

Parameters:
rng - Random number generator.

getAddress

public rice.pastry.messaging.Address getAddress()
Get address.

Overrides:
getAddress in class PastryAppl
Returns:
the address of this application.

getCredentials

public rice.pastry.security.Credentials getCredentials()
Get credentials.

Specified by:
getCredentials in class PastryAppl
Returns:
credentials.

messageForAppl

public void messageForAppl(rice.pastry.messaging.Message msg)
Invoked on destination node when a message arrives.

Specified by:
messageForAppl in class PastryAppl
Parameters:
msg - Message being routed around

enrouteMessage

public boolean enrouteMessage(rice.pastry.messaging.Message msg,
                              rice.pastry.Id key,
                              rice.pastry.NodeId nextHop,
                              rice.pastry.routing.SendOptions opt)
Invoked on intermediate nodes in routing path.

Overrides:
enrouteMessage in class PastryAppl
Parameters:
msg - Message that's passing through this node.
key - destination
nextHop - next hop
opt - send options
Returns:
true if message needs to be forwarded according to plan.

leafSetChange

public void leafSetChange(rice.pastry.NodeHandle nh,
                          boolean wasAdded)
Invoked upon change to leafset.

Overrides:
leafSetChange in class PastryAppl
Parameters:
nh - node handle that got added/removed
wasAdded - added (true) or removed (false)

routeSetChange

public void routeSetChange(rice.pastry.NodeHandle nh,
                           boolean wasAdded)
Invoked upon change to routing table.

Overrides:
routeSetChange in class PastryAppl
Parameters:
nh - node handle that got added/removed
wasAdded - added (true) or removed (false)

notifyReady

public void notifyReady()
Invoked by {RMI,Direct}PastryNode when the node has something in its leaf set, and has become ready to receive application messages.

Overrides:
notifyReady in class PastryAppl

Rice Pastry API

Copyright © 2001 - Rice Pastry.


Imprint-Dataprotection