Rice Pastry API

rice.tutorial.splitstream
Class MySplitStreamClient

java.lang.Object
  extended by rice.tutorial.splitstream.MySplitStreamClient
All Implemented Interfaces:
Application, SplitStreamClient

public class MySplitStreamClient
extends java.lang.Object
implements SplitStreamClient, Application

We implement the Application interface to receive regular timed messages (see lesson5). We implement the ScribeClient interface to receive scribe messages (called ScribeContent).

Author:
Jeff Hoye

Field Summary
static int DATA_LENGTH
          The lenght of a message in bytes.
protected  Endpoint endpoint
          The Endpoint represents the underlieing node.
static int NUM_PUBLISHES
          The number of messages to publish.
protected  RandomSource random
          Data source...
 
Constructor Summary
MySplitStreamClient(Node node)
          The constructor for this scribe client.
 
Method Summary
 void deliver(Id id, Message message)
          Part of the Application interface.
 void deliver(Stripe s, byte[] data)
          Called whenever we receive a published message.
 boolean forward(RouteMessage message)
          This method is invoked on applications when the underlying node is about to forward the given message with the provided target to the specified next hop.
 void joinFailed(Stripe s)
          This is a call back into the application to notify it that one of the stripes was unable to to find a parent, and thus unable to recieve data.
 void publish()
          Multicasts data.
 void startPublishTask()
          Starts the publish task.
 void subscribe()
          Subscribes to all stripes in myChannelId.
 void update(NodeHandle handle, boolean joined)
          This method is invoked to inform the application that the given node has either joined or left the neighbor set of the local node, as the set would be returned by the neighborSet call.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATA_LENGTH

public static final int DATA_LENGTH
The lenght of a message in bytes.

See Also:
Constant Field Values

NUM_PUBLISHES

public static final int NUM_PUBLISHES
The number of messages to publish.

See Also:
Constant Field Values

random

protected RandomSource random
Data source...


endpoint

protected Endpoint endpoint
The Endpoint represents the underlieing node. By making calls on the Endpoint, it assures that the message will be delivered to a MyApp on whichever node the message is intended for.

Constructor Detail

MySplitStreamClient

public MySplitStreamClient(Node node)
The constructor for this scribe client. It will construct the ScribeApplication.

Parameters:
node - the PastryNode
Method Detail

subscribe

public void subscribe()
Subscribes to all stripes in myChannelId.


startPublishTask

public void startPublishTask()
Starts the publish task.


deliver

public void deliver(Id id,
                    Message message)
Part of the Application interface. Will receive PublishContent every so often.

Specified by:
deliver in interface Application
Parameters:
id - The destination id of the message
message - The message being sent

publish

public void publish()
Multicasts data.


deliver

public void deliver(Stripe s,
                    byte[] data)
Called whenever we receive a published message.

Specified by:
deliver in interface SplitStreamClient
Parameters:
s - The stripe the data as received on
data - The data that was received

joinFailed

public void joinFailed(Stripe s)
Description copied from interface: SplitStreamClient
This is a call back into the application to notify it that one of the stripes was unable to to find a parent, and thus unable to recieve data.

Specified by:
joinFailed in interface SplitStreamClient
Parameters:
s - The stripe which the join failed on

forward

public boolean forward(RouteMessage message)
Description copied from interface: Application
This method is invoked on applications when the underlying node is about to forward the given message with the provided target to the specified next hop. Applications can change the contents of the message, specify a different nextHop (through re-routing), or completely terminate the message.

Specified by:
forward in interface Application
Parameters:
message - The message being sent, containing an internal message along with a destination key and nodeHandle next hop.
Returns:
Whether or not to forward the message further

update

public void update(NodeHandle handle,
                   boolean joined)
Description copied from interface: Application
This method is invoked to inform the application that the given node has either joined or left the neighbor set of the local node, as the set would be returned by the neighborSet call.

Specified by:
update in interface Application
Parameters:
handle - The handle that has joined/left
joined - Whether the node has joined or left

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection