@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.
INPUT_MODE, OUTPUT_MODE
Constructor and Description |
---|
SharedOutputBuffer(int buffersize) |
SharedOutputBuffer(int buffersize,
ByteBufferAllocator allocator) |
SharedOutputBuffer(int buffersize,
IOControl ioctrl,
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 ioctrl) |
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.
|
toString
@Deprecated public SharedOutputBuffer(int buffersize, IOControl ioctrl, ByteBufferAllocator allocator)
SharedOutputBuffer(int, ByteBufferAllocator)
public SharedOutputBuffer(int buffersize, ByteBufferAllocator allocator)
public SharedOutputBuffer(int buffersize)
public void reset()
ContentOutputBuffer
reset
in interface ContentOutputBuffer
public boolean hasData()
ExpandableBuffer
hasData
in class ExpandableBuffer
true
if there is data in the buffer,
false
otherwise.public int available()
ExpandableBuffer
available
in interface BufferInfo
available
in class ExpandableBuffer
public int capacity()
ExpandableBuffer
capacity
in interface BufferInfo
capacity
in class ExpandableBuffer
public int length()
ExpandableBuffer
length
in interface BufferInfo
length
in class ExpandableBuffer
@Deprecated public int produceContent(ContentEncoder encoder) throws IOException
produceContent(ContentEncoder, IOControl)
ContentOutputBuffer
ContentEncoder
.produceContent
in interface ContentOutputBuffer
encoder
- content encoder.IOException
- in case of an I/O error.public int produceContent(ContentEncoder encoder, IOControl ioctrl) throws IOException
IOException
public void close()
public void shutdown()
public void write(byte[] b, int off, int len) throws IOException
ContentOutputBuffer
len
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 ContentOutputBuffer
b
- 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
IOException
public void write(int b) throws IOException
ContentOutputBuffer
write
in interface ContentOutputBuffer
b
- the byte
.IOException
- if an I/O error occurs.public void flush() throws IOException
flush
in interface ContentOutputBuffer
IOException
public void writeCompleted() throws IOException
ContentOutputBuffer
writeCompleted
in interface ContentOutputBuffer
IOException
- if an I/O error occurs.Copyright © 2010 - 2020 Adobe. All Rights Reserved