Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rice.pastry.routing
Class RouteMessage

    java.lang.Object
      rice.pastry.messaging.Message
          rice.pastry.messaging.PRawMessage
              rice.pastry.routing.RouteMessage

All Implemented Interfaces:
  java.io.Serializable, Message, RawMessage, 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 3980 2007-11-28 16:20:54Z 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 auxilary 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 `RawMessage`
  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:

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.