@Contract(threading=SAFE_CONDITIONAL) public class SharedOutputBuffer extends ExpandableBuffer implements ContentOutputBuffer
ContentOutputBuffer interface that can be
shared by multiple threads, usually the I/O dispatch of an I/O reactor and
a worker thread.
The I/O dispatch thread is expected to transfer data from the buffer to
ContentEncoder by calling produceContent(ContentEncoder).
The worker thread is expected to write data to the buffer by calling
write(int), write(byte[], int, int) or writeCompleted()
In case of an abnormal situation or when no longer needed the buffer must be
shut down using shutdown() method.
buffer, INPUT_MODE, OUTPUT_MODE| Constructor and Description |
|---|
SharedOutputBuffer(int bufferSize) |
SharedOutputBuffer(int bufferSize,
ByteBufferAllocator allocator) |
SharedOutputBuffer(int bufferSize,
IOControl ioControl,
ByteBufferAllocator allocator)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
int |
available()
Returns available capacity of this buffer.
|
int |
capacity()
Returns the total capacity of this buffer.
|
void |
close() |
void |
flush() |
boolean |
hasData()
Determines if the buffer contains data.
|
int |
length()
Returns the length of this buffer.
|
int |
produceContent(ContentEncoder encoder)
Deprecated.
|
int |
produceContent(ContentEncoder encoder,
IOControl ioControl) |
void |
reset()
Resets the buffer by clearing its state and stored content.
|
void |
shutdown() |
void |
write(byte[] b) |
void |
write(byte[] b,
int off,
int len)
Writes
len bytes from the specified byte array
starting at offset off to this buffer. |
void |
write(int b)
Writes the specified byte to this buffer.
|
void |
writeCompleted()
Indicates the content has been fully written.
|
clear, ensureCapacity, expand, getMode, setInputMode, setOutputMode, toString@Deprecated public SharedOutputBuffer(int bufferSize, IOControl ioControl, ByteBufferAllocator allocator)
SharedOutputBuffer(int, ByteBufferAllocator)public SharedOutputBuffer(int bufferSize,
ByteBufferAllocator allocator)
public SharedOutputBuffer(int bufferSize)
public void reset()
ContentOutputBufferreset in interface ContentOutputBufferpublic boolean hasData()
ExpandableBufferhasData in class ExpandableBuffertrue if there is data in the buffer,
false otherwise.public int available()
ExpandableBufferavailable in interface BufferInfoavailable in class ExpandableBufferpublic int capacity()
ExpandableBuffercapacity in interface BufferInfocapacity in class ExpandableBufferpublic int length()
ExpandableBufferlength in interface BufferInfolength in class ExpandableBuffer@Deprecated public int produceContent(ContentEncoder encoder) throws IOException
produceContent(ContentEncoder, IOControl)ContentOutputBufferContentEncoder.produceContent in interface ContentOutputBufferencoder - content encoder.IOException - in case of an I/O error.public int produceContent(ContentEncoder encoder, IOControl ioControl) throws IOException
IOExceptionpublic void close()
public void shutdown()
public void write(byte[] b,
int off,
int len)
throws IOException
ContentOutputBufferlen bytes from the specified byte array
starting at offset off to this buffer.
If off is negative, or len is negative, or
off+len is greater than the length of the array
b, this method can throw a runtime exception. The exact type
of runtime exception thrown by this method depends on implementation.
write in interface ContentOutputBufferb - the data.off - the start offset in the data.len - the number of bytes to write.IOException - if an I/O error occurs.public void write(byte[] b)
throws IOException
IOExceptionpublic void write(int b)
throws IOException
ContentOutputBufferwrite in interface ContentOutputBufferb - the byte.IOException - if an I/O error occurs.public void flush()
throws IOException
flush in interface ContentOutputBufferIOExceptionpublic void writeCompleted()
throws IOException
ContentOutputBufferwriteCompleted in interface ContentOutputBufferIOException - if an I/O error occurs.Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.