Rice Pastry API

rice.pastry.routing
Class RouteMessage

java.lang.Object
  extended by rice.pastry.messaging.Message
      extended by rice.pastry.messaging.PRawMessage
          extended by rice.pastry.routing.RouteMessage
All Implemented Interfaces:
java.io.Serializable, Message, RawMessage, RawSerializable, RouteMessage

public class RouteMessage
extends PRawMessage
implements java.io.Serializable, RouteMessage

A route message contains a pastry message that has been wrapped to be sent to another pastry node.

Version:
$Id: RouteMessage.java 4279 2008-07-15 11:13:33Z jeffh $
Author:
Andrew Ladd
See Also:
Serialized Form

Field Summary
 Message internalMsg
           
 int numRetries
          This is used by the Rerouter to keep track of how many attempted reroutes of the message.
static short TYPE
           
 
Fields inherited from class rice.pastry.messaging.Message
DEFAULT_PRIORITY_LEVEL
 
Fields inherited from interface rice.p2p.commonapi.Message
DEFAULT_PRIORITY, HIGH_PRIORITY, LOW_PRIORITY, LOWEST_PRIORITY, MAX_PRIORITY, MEDIUM_HIGH_PRIORITY, MEDIUM_LOW_PRIORITY, MEDIUM_PRIORITY
 
Constructor Summary
RouteMessage(Id target, int auxAddress, NodeHandle prev, InputBuffer buf, byte priority, PastryNode pn, NodeHandle destinationHandle, byte serializeVersion)
           
RouteMessage(Id target, Message msg, byte serializeVersion)
          Constructor.
RouteMessage(Id target, Message msg, NodeHandle firstHop, byte serializeVersion)
          Constructor.
RouteMessage(Id target, Message msg, NodeHandle firstHop, SendOptions opts, byte serializeVersion)
          Constructor.
RouteMessage(Id target, Message msg, SendOptions opts, byte serializeVersion)
          Constructor.
RouteMessage(Id target, PRawMessage msg, NodeHandle firstHop, SendOptions opts, byte serializeVersion)
           
RouteMessage(NodeHandle dest, Message msg, SendOptions opts, byte serializeVersion)
          Constructor.
 
Method Summary
static RouteMessage build(InputBuffer buf, byte priority, PastryNode pn, NodeHandle prev, byte outputVersion)
          version 1: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + int auxAddress + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + bool hasHndle + // if it has a destinationHandle instead of an Id +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Id target + + (only existis if the hasHandle boolean is false + + + + + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle destinationHandle + + (used if the RouteMessage is intended for a specific node) + + (only exists if the hasHandle boolean is true) + ...
 boolean cancel()
           
 int getAuxAddress()
           
 NodeHandle getDestinationHandle()
           
 Id getDestinationId()
          Returns the destination Id for this message
 short getInternalType()
           
 Message getMessage()
          Deprecated. use getMessage(MessageDeserializer)
 Message getMessage(MessageDeserializer md)
           
 NodeHandle getNextHop()
           
 NodeHandle getNextHopHandle()
          Returns the next hop handle for this message
 SendOptions getOptions()
          Get transmission options.
 NodeHandle getPrevNode()
           
 int getPriority()
          Get priority
 Id getTarget()
          Gets the target node id of this message.
 java.util.Map<java.lang.String,java.lang.Object> getTLOptions()
           
 short getType()
           
 boolean sendFailed(java.lang.Exception e)
          Return true if it notified a higher layer.
 void sendSuccess(NodeHandle nextHop)
           
 void serialize(OutputBuffer buf)
           
 void setDestinationHandle(NodeHandle handle)
           
 void setDestinationId(Id id)
          Sets the destination Id for this message
 void setMessage(Message message)
          Sets the internal message for this message
 void setMessage(RawMessage message)
          Sets the internal message for this message Does the same as setMessage(Message) but with better performance, because it doesn't have to introspect if the message is a RawMessage
 void setNextHop(NodeHandle nh)
           
 void setNextHopHandle(NodeHandle nextHop)
          Sets the next hop handle for this message
 void setPrevNode(NodeHandle n)
           
 void setRouteMessageNotification(RouteMessageNotification notification)
           
 void setTLCancellable(Cancellable c)
           
 void setTLOptions(java.util.Map<java.lang.String,java.lang.Object> options)
           
 java.lang.String toString()
           
 Message unwrap()
          Deprecated. use unwrap(MessageDeserializer)
 Message unwrap(MessageDeserializer md)
           
 
Methods inherited from class rice.pastry.messaging.Message
getDate, getDestination, getSender, getSenderId, setPriority, setSender, stamp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE

public static final short TYPE
See Also:
Constant Field Values

internalMsg

public Message internalMsg

numRetries

public transient int numRetries
This is used by the Rerouter to keep track of how many attempted reroutes of the message.

Constructor Detail

RouteMessage

public RouteMessage(Id target,
                    Message msg,
                    byte serializeVersion)
Constructor.

Parameters:
target - this is id of the node the message will be routed to.
msg - the wrapped message.
cred - the credentials for the message.

RouteMessage

public RouteMessage(Id target,
                    Message msg,
                    SendOptions opts,
                    byte serializeVersion)
Constructor.

Parameters:
target - this is id of the node the message will be routed to.
msg - the wrapped message.
cred - the credentials for the message.
opts - the send options for the message.

RouteMessage

public RouteMessage(NodeHandle dest,
                    Message msg,
                    SendOptions opts,
                    byte serializeVersion)
Constructor.

Parameters:
dest - the node this message will be routed to
msg - the wrapped message.
cred - the credentials for the message.
opts - the send options for the message.
aux - an auxilary address which the message after each hop.

RouteMessage

public RouteMessage(Id target,
                    Message msg,
                    NodeHandle firstHop,
                    byte serializeVersion)
Constructor.

Parameters:
target - this is id of the node the message will be routed to.
msg - the wrapped message.
firstHop - the nodeHandle of the first hop destination
aux - an auxilary address which the message after each hop.

RouteMessage

public RouteMessage(Id target,
                    PRawMessage msg,
                    NodeHandle firstHop,
                    SendOptions opts,
                    byte serializeVersion)

RouteMessage

public RouteMessage(Id target,
                    Message msg,
                    NodeHandle firstHop,
                    SendOptions opts,
                    byte serializeVersion)
Constructor.

Parameters:
target - this is id of the node the message will be routed to.
msg - the wrapped message.
firstHop - the nodeHandle of the first hop destination
opts - the send options for the message.
aux - an auxiliary address which the message after each hop.

RouteMessage

public RouteMessage(Id target,
                    int auxAddress,
                    NodeHandle prev,
                    InputBuffer buf,
                    byte priority,
                    PastryNode pn,
                    NodeHandle destinationHandle,
                    byte serializeVersion)
             throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getTarget

public Id getTarget()
Gets the target node id of this message.

Returns:
the target node id.

getPrevNode

public NodeHandle getPrevNode()

setPrevNode

public void setPrevNode(NodeHandle n)

getNextHop

public NodeHandle getNextHop()

setNextHop

public void setNextHop(NodeHandle nh)

getPriority

public int getPriority()
Get priority

Specified by:
getPriority in interface Message
Overrides:
getPriority in class Message
Returns:
the priority of this message.

unwrap

public Message unwrap()
Deprecated. use unwrap(MessageDeserializer)

The wrapped message.

Returns:
the wrapped message.

getOptions

public SendOptions getOptions()
Get transmission options.

Returns:
the options.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getDestinationId

public Id getDestinationId()
Description copied from interface: RouteMessage
Returns the destination Id for this message

Specified by:
getDestinationId in interface RouteMessage
Returns:
The destination Id

getNextHopHandle

public NodeHandle getNextHopHandle()
Description copied from interface: RouteMessage
Returns the next hop handle for this message

Specified by:
getNextHopHandle in interface RouteMessage
Returns:
The next hop

getMessage

public Message getMessage()
Deprecated. use getMessage(MessageDeserializer)

Description copied from interface: RouteMessage
Returns the enclosed message inside of this message

Specified by:
getMessage in interface RouteMessage
Returns:
The enclosed message

getMessage

public Message getMessage(MessageDeserializer md)
                   throws java.io.IOException
Specified by:
getMessage in interface RouteMessage
Throws:
java.io.IOException

setDestinationId

public void setDestinationId(Id id)
Description copied from interface: RouteMessage
Sets the destination Id for this message

Specified by:
setDestinationId in interface RouteMessage
Parameters:
id - The destination Id

setNextHopHandle

public void setNextHopHandle(NodeHandle nextHop)
Description copied from interface: RouteMessage
Sets the next hop handle for this message

Specified by:
setNextHopHandle in interface RouteMessage
Parameters:
nextHop - The next hop for this handle

setMessage

public void setMessage(Message message)
Description copied from interface: RouteMessage
Sets the internal message for this message

Specified by:
setMessage in interface RouteMessage
Parameters:
message - The internal message

setMessage

public void setMessage(RawMessage message)
Description copied from interface: RouteMessage
Sets the internal message for this message Does the same as setMessage(Message) but with better performance, because it doesn't have to introspect if the message is a RawMessage

Specified by:
setMessage in interface RouteMessage
Parameters:
message - The internal message

build

public static RouteMessage build(InputBuffer buf,
                                 byte priority,
                                 PastryNode pn,
                                 NodeHandle prev,
                                 byte outputVersion)
                          throws java.io.IOException
version 1: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + int auxAddress + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + bool hasHndle + // if it has a destinationHandle instead of an Id +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Id target + + (only existis if the hasHandle boolean is false + + + + + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle destinationHandle + + (used if the RouteMessage is intended for a specific node) + + (only exists if the hasHandle boolean is true) + ... + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle prev + + (used to repair routing table during routing) + + + ... + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Internal Message + + (see below) + + + version 0: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + int auxAddress + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Id target + + + + + + + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + NodeHandle prev + + (used to repair routing table during routing) + + + ... + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Internal Message + + (see below) + + +

Parameters:
buf -
Returns:
Throws:
java.io.IOException

serialize

public void serialize(OutputBuffer buf)
               throws java.io.IOException
Specified by:
serialize in interface RawSerializable
Throws:
java.io.IOException

unwrap

public Message unwrap(MessageDeserializer md)
               throws java.io.IOException
Throws:
java.io.IOException

getType

public short getType()
Specified by:
getType in interface RawMessage

getAuxAddress

public int getAuxAddress()

getInternalType

public short getInternalType()

setDestinationHandle

public void setDestinationHandle(NodeHandle handle)

getDestinationHandle

public NodeHandle getDestinationHandle()

getTLOptions

public java.util.Map<java.lang.String,java.lang.Object> getTLOptions()

setTLOptions

public void setTLOptions(java.util.Map<java.lang.String,java.lang.Object> options)

setTLCancellable

public void setTLCancellable(Cancellable c)

cancel

public boolean cancel()

setRouteMessageNotification

public void setRouteMessageNotification(RouteMessageNotification notification)

sendSuccess

public void sendSuccess(NodeHandle nextHop)

sendFailed

public boolean sendFailed(java.lang.Exception e)
Return true if it notified a higher layer.

Parameters:
e -
Returns:

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection