|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object rice.pastry.socket.SocketChannelWriter
Class which serves as an "writer" for all of the messages sent across the wire in Pastry. This class serializes and properly formats all messages, and then waits to be called with an available SocketChannel in order to write the message out. If the messagae could not be written in one go, subsequent calls to the write() method will finish writing out the message. This class also maintains an internal queue of messages waiting to be sent across the wire. Calling isEmpty() will tell clients if it is safe to mark the SelectionKey as not being interested in writing.
Field Summary | |
protected Environment |
environment
DESCRIBE THE FIELD |
protected Logger |
logger
DESCRIBE THE FIELD |
protected SourceRoute |
path
DESCRIBE THE FIELD |
Constructor Summary | |
SocketChannelWriter(Environment env,
SourceRoute path)
Constructor for SocketChannelWriter. |
|
SocketChannelWriter(SocketPastryNode spn,
SourceRoute path)
Constructor which creates this SocketChannelWriter with a pastry node and an object to write out. |
Method Summary | |
boolean |
enqueue(byte[] msg)
DESCRIBE THE METHOD |
boolean |
enqueue(Message msg)
DESCRIBE THE METHOD |
boolean |
enqueue(SocketBuffer o)
Adds an object to this SocketChannelWriter's queue of pending objects to write. |
java.util.LinkedList |
getQueue()
Returns the queue of writes for the remote address |
boolean |
isEmpty()
Returns whether or not there are objects in the queue on in writing. |
protected void |
record(java.lang.String action,
java.lang.Object obj,
int size,
SourceRoute path)
DESCRIBE THE METHOD |
void |
reset()
Returns the queue of writes for the remote address |
protected void |
setPath(SourceRoute path)
Sets this writer's path |
boolean |
write(java.nio.channels.SocketChannel sc)
Method which is designed to be called when this writer should write out its data. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected SourceRoute path
protected Environment environment
protected Logger logger
Constructor Detail |
public SocketChannelWriter(SocketPastryNode spn, SourceRoute path)
spn
- The spn the SocketChannelWriter serverspath
- DESCRIBE THE PARAMETERpublic SocketChannelWriter(Environment env, SourceRoute path)
env
- DESCRIBE THE PARAMETERpath
- DESCRIBE THE PARAMETERMethod Detail |
public boolean isEmpty()
public java.util.LinkedList getQueue()
protected void setPath(SourceRoute path)
path
- The path this writer is usingpublic boolean enqueue(Message msg) throws java.io.IOException
msg
- DESCRIBE THE PARAMETER
java.io.IOException
- DESCRIBE THE EXCEPTIONpublic boolean enqueue(byte[] msg)
msg
- DESCRIBE THE PARAMETER
public boolean enqueue(SocketBuffer o)
o
- The object to be written.
public void reset()
protected void record(java.lang.String action, java.lang.Object obj, int size, SourceRoute path)
action
- DESCRIBE THE PARAMETERobj
- DESCRIBE THE PARAMETERsize
- DESCRIBE THE PARAMETERpath
- DESCRIBE THE PARAMETERpublic boolean write(java.nio.channels.SocketChannel sc) throws java.io.IOException
sc
- The SocketChannel to write to
java.io.IOException
- DESCRIBE THE EXCEPTION
|
Rice Pastry API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |