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.socket
Class SocketChannelRepeater

    java.lang.Object
      rice.pastry.socket.SocketChannelRepeater

    public class SocketChannelRepeater

extends java.lang.Object

Class which serves as an "reader" for messages sent across the wire via the Pastry socket protocol. This class builds up an object as it is being sent across the wire, and when it has recieved all of an object, it informs the WirePastryNode by using the recieveMessage(msg) method. The SocketChannelReader is designed to be reused, to read objects continiously off of one stream.

Version:
  $Id: SocketChannelReader.java,v 1.5 2004/03/08 19:53:57 amislove Exp $
Author:
  Alan Mislove

Field Summary
`protected int` | `REPEATER_BUFFER_SIZE`

Constructor Summary
`SocketChannelRepeater(SocketPastryNode spn, SocketCollectionManager.SourceRouteManager manager)` Constructor which creates this SocketChannelReader and the WirePastryNode.

Method Summary
`static EpochInetSocketAddress[]` | `decodeFullHeader(byte[] array, int num)`
`static EpochInetSocketAddress` | `decodeHeader(byte[] array)` Method which can be used to decode the necessary header for the intermediate hop
`static EpochInetSocketAddress` | `decodeHeader(byte[] array, int offset)` Method which can be used to decode the necessary header for the intermediate hop
`boolean` | `read(java.nio.channels.SocketChannel sc)` Method which is to be called when there is data available on the specified SocketChannel.
`boolean` | `write(java.nio.channels.SocketChannel sc)` Method which is designed to be called when this repeater should write something out.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### REPEATER_BUFFER_SIZE

    protected int REPEATER_BUFFER_SIZE

Constructor Detail

### SocketChannelRepeater

    public SocketChannelRepeater(SocketPastryNode spn,
                                 SocketCollectionManager.SourceRouteManager manager)

  Constructor which creates this SocketChannelReader and the WirePastryNode. Once the reader has completely read a message, it deserializes the message and hands it off to the pastry node.

  Parameters:
    `spn` - The PastryNode the SocketChannelReader serves.

Method Detail

### decodeHeader

    public static EpochInetSocketAddress decodeHeader(byte[] array)
                                               throws java.io.IOException

  Method which can be used to decode the necessary header for the intermediate hop

  Parameters:
    `array` - The encoded header
  Returns:
    The address
  Throws:
    `java.io.IOException`

### decodeFullHeader

    public static EpochInetSocketAddress[] decodeFullHeader(byte[] array,
                                                            int num)
                                                     throws java.io.IOException

  Throws:
    `java.io.IOException`

### decodeHeader

    public static EpochInetSocketAddress decodeHeader(byte[] array,
                                                      int offset)
                                               throws java.io.IOException

  Method which can be used to decode the necessary header for the intermediate hop

  Parameters:
    `array` - The encoded header
  Returns:
    The address
  Throws:
    `java.io.IOException`

### read

    public boolean read(java.nio.channels.SocketChannel sc)
                 throws java.io.IOException

  Method which is to be called when there is data available on the specified SocketChannel. The data is read in, and is put into the output buffer.

  Parameters:
    `sc` - The channel to read from.
  Returns:
    whether or not we the reading key should be turned off an the writing key on
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

### write

    public boolean write(java.nio.channels.SocketChannel sc)
                  throws java.io.IOException

  Method which is designed to be called when this repeater should write something out.

  Parameters:
    `sc` - The SocketChannel to write to
  Returns:
    true if this output stream is done, false otherwise
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

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.