|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.grizzly.tcp.http11.InternalOutputBuffer
com.sun.grizzly.http.SocketChannelOutputBuffer
public class SocketChannelOutputBuffer
Output buffer.
Buffer the bytes until the ByteChunk
is full or the request
is completed.
Nested Class Summary | |
---|---|
protected static class |
SocketChannelOutputBuffer.AsyncWriteCallbackHandlerImpl
AsyncWriteCallbackHandler implementation, which is responsible
for returning cloned ByteBuffers to the pool |
protected class |
SocketChannelOutputBuffer.ByteBufferClonerImpl
ByteBufferCloner implementation, which is called by Grizzly
framework at the time, when asynchronous write queue can not write
the buffer direcly on socket and instead will put it in queue. |
Nested classes/interfaces inherited from class com.sun.grizzly.tcp.http11.InternalOutputBuffer |
---|
InternalOutputBuffer.OutputStreamOutputBuffer |
Field Summary | |
---|---|
protected static ByteBuffer |
ACK
ACK static bytes. |
protected ByteBufferCloner |
asyncHttpByteBufferCloner
ByteBufferCloner implementation, which is called by Grizzly
framework at the time, when asynchronous write queue can not write
the buffer direcly on socket and instead will put it in queue. |
protected AsyncQueueWriter |
asyncQueueWriter
Asynchronous queue writer, which will be used if asyncHttp mode is enabled |
protected static Queue<ByteBuffer> |
bufferPool
ByteBuffer pool to be used with async write |
protected Channel |
channel
Underlying output channel. |
protected static int |
DEFAULT_BUFFER_POOL_SIZE
|
protected boolean |
isAsyncHttpWriteEnabled
Flag, which indicates if async HTTP write is enabled |
protected static Logger |
logger
|
protected static int |
MAX_BUFFERED_BYTES
Maximum cached bytes before flushing. |
protected static int |
maxBufferedBytes
Default max cached bytes. |
protected static int |
maxBufferPoolSize
|
protected ByteBuffer |
outputByteBuffer
Underlying ByteByteBuffer |
protected SelectionKey |
selectionKey
Underlying selection key of the output channel. |
Fields inherited from class com.sun.grizzly.tcp.http11.InternalOutputBuffer |
---|
activeFilters, buf, committed, filterLibrary, finished, headers, lastActiveFilter, outputStream, outputStreamOutputBuffer, pos, response, socketBuffer, useSocketBuffer |
Constructor Summary | |
---|---|
SocketChannelOutputBuffer(Response response,
int headerBufferSize,
boolean useSocketBuffer)
Alternate constructor. |
Method Summary | |
---|---|
protected ByteBuffer |
createByteBuffer(int size)
Create the output ByteBuffer |
void |
endRequest()
End request. |
void |
flush()
Flush the buffered bytes, |
void |
flushBuffer()
Writes bytes to the underlying channel. |
void |
flushChannel(ByteBuffer bb)
Flush the buffer by looping until the ByteBuffer is empty |
protected AsyncQueueWriter |
getAsyncQueueWriter()
Gets the asynchronous queue writer, which will be used if asyncHttp mode is enabled |
Channel |
getChannel()
Return the underlying SocketChannel |
static int |
getMaxBufferedBytes()
Return the maximum of buffered bytes. |
static int |
getMaxBufferPoolSize()
Return the maximum number of cached ByteBuffer |
SelectionKey |
getSelectionKey()
Gets the underlying selection key of the output channel. |
boolean |
isAsyncHttpWriteEnabled()
Is async HTTP write enabled. |
boolean |
isSupportFileSend()
|
void |
realWriteBytes(byte[] cbuf,
int off,
int len)
Callback to write data from the buffer. |
void |
recycle()
Recycle the output buffer. |
void |
reset()
Reset current response. |
void |
sendAck()
Send an acknoledgement without buffering. |
long |
sendFile(FileChannel fileChannel,
long position,
long length)
|
void |
setAsyncHttpWriteEnabled(boolean isAsyncHttpWriteEnabled)
Set if async HTTP write enabled. |
protected void |
setAsyncQueueWriter(AsyncQueueWriter asyncQueueWriter)
Sets the asynchronous queue writer, which will be used if asyncHttp mode is enabled |
void |
setChannel(Channel channel)
Set the underlying socket output stream. |
static void |
setMaxBufferedBytes(int aMaxBufferedBytes)
Set the maximum number of bytes before flushing the ByteBuffer
content. |
static void |
setMaxBufferPoolSize(int size)
Set the maximum size of cached ByteBuffer when async
write is enabled. |
void |
setSelectionKey(SelectionKey selectionKey)
Sets the underlying selection key of the output channel. |
Methods inherited from class com.sun.grizzly.tcp.http11.InternalOutputBuffer |
---|
addActiveFilter, addFilter, addLastOutputFilter, clearFilters, commit, doWrite, endHeaders, getFilters, getOutputStream, nextRequest, sendHeader, sendHeader, sendHeader, sendStatus, setOutputStream, setSocketBuffer, write, write, write, write, write, write |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static Logger logger
protected static final int DEFAULT_BUFFER_POOL_SIZE
protected static int maxBufferPoolSize
protected static Queue<ByteBuffer> bufferPool
protected final ByteBufferCloner asyncHttpByteBufferCloner
ByteBufferCloner
implementation, which is called by Grizzly
framework at the time, when asynchronous write queue can not write
the buffer direcly on socket and instead will put it in queue.
This implementation tries to get temporary ByteBuffer from the pool,
if no ByteBuffer is available - then new one will be created.
protected Channel channel
protected SelectionKey selectionKey
protected boolean isAsyncHttpWriteEnabled
protected AsyncQueueWriter asyncQueueWriter
protected ByteBuffer outputByteBuffer
protected static final ByteBuffer ACK
protected static final int MAX_BUFFERED_BYTES
protected static int maxBufferedBytes
Constructor Detail |
---|
public SocketChannelOutputBuffer(Response response, int headerBufferSize, boolean useSocketBuffer)
Method Detail |
---|
protected ByteBuffer createByteBuffer(int size)
ByteBuffer
public void setChannel(Channel channel)
public Channel getChannel()
public SelectionKey getSelectionKey()
public void setSelectionKey(SelectionKey selectionKey)
selectionKey
- the underlying selection key of the output channel.public boolean isAsyncHttpWriteEnabled()
public void setAsyncHttpWriteEnabled(boolean isAsyncHttpWriteEnabled)
isAsyncHttpWriteEnabled
- true, if async HTTP write
enabled, or false otherwise.protected AsyncQueueWriter getAsyncQueueWriter()
protected void setAsyncQueueWriter(AsyncQueueWriter asyncQueueWriter)
asyncQueueWriter
- The asynchronous queue writer, which will be
used if asyncHttp mode is enabledpublic void sendAck() throws IOException
sendAck
in class InternalOutputBuffer
IOException
public void realWriteBytes(byte[] cbuf, int off, int len) throws IOException
realWriteBytes
in interface ByteChunk.ByteOutputChannel
realWriteBytes
in class InternalOutputBuffer
IOException
public void flushChannel(ByteBuffer bb) throws IOException
ByteBuffer
is empty
bb
- the ByteBuffer to write.
IOException
public boolean isSupportFileSend()
isSupportFileSend
in interface FileOutputBuffer
public long sendFile(FileChannel fileChannel, long position, long length) throws IOException
sendFile
in interface FileOutputBuffer
IOException
public void flush() throws IOException
flush
in class InternalOutputBuffer
IOException
public void endRequest() throws IOException
endRequest
in class InternalOutputBuffer
IOException
- an undelying I/O error occuredpublic void flushBuffer() throws IOException
IOException
public void recycle()
recycle
in class InternalOutputBuffer
public void reset()
reset
in class InternalOutputBuffer
IllegalStateException
- if the response has already been committedpublic static int getMaxBufferedBytes()
public static void setMaxBufferedBytes(int aMaxBufferedBytes)
ByteBuffer
content.
aMaxBufferedBytes
- public static void setMaxBufferPoolSize(int size)
ByteBuffer
when async
write is enabled.
size
- public static int getMaxBufferPoolSize()
ByteBuffer
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |