rice.pastry.wire
Class SocketChannelReader

java.lang.Object
  extended byrice.pastry.wire.SocketChannelReader

public class SocketChannelReader
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.


Field Summary
protected  WireNodeHandle handle
           
protected static byte[] MAGIC_NUMBER
          the magic number array which is written first
 
Constructor Summary
SocketChannelReader(WirePastryNode spn, WireNodeHandle _handle)
          Constructor which creates this SocketChannelReader and the WirePastryNode.
 
Method Summary
 java.lang.Object read(java.nio.channels.SocketChannel sc)
          Method which is to be called when there is data available on the specified SocketChannel.
 void reset()
          Resets this input stream so that it is ready to read another object off of the queue.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

handle

protected WireNodeHandle handle

MAGIC_NUMBER

protected static byte[] MAGIC_NUMBER
the magic number array which is written first

Constructor Detail

SocketChannelReader

public SocketChannelReader(WirePastryNode spn,
                           WireNodeHandle _handle)
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

read

public java.lang.Object 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 if the object is done being read, it is parsed.

Parameters:
sc - The channel to read from.
Returns:
The object read off the stream, or null if no object has been completely read yet
Throws:
java.io.IOException - if there is an error during reading/deserialization

reset

public void reset()
Resets this input stream so that it is ready to read another object off of the queue.






Imprint-Dataprotection