@Contract(threading=SAFE_CONDITIONAL) public class SharedInputBuffer extends ExpandableBuffer implements ContentInputBuffer
ContentInputBuffer
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 expect to transfer data from ContentDecoder
to the buffer
by calling consumeContent(ContentDecoder)
.
The worker thread is expected to read the data from the buffer by calling
read()
or read(byte[], int, int)
methods.
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 |
---|
SharedInputBuffer(int buffersize) |
SharedInputBuffer(int buffersize,
ByteBufferAllocator allocator) |
SharedInputBuffer(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() |
int |
consumeContent(ContentDecoder decoder)
Deprecated.
|
int |
consumeContent(ContentDecoder decoder,
IOControl ioctrl) |
boolean |
hasData()
Determines if the buffer contains data.
|
int |
length()
Returns the length of this buffer.
|
int |
read()
Reads one byte from this buffer.
|
int |
read(byte[] b) |
int |
read(byte[] b,
int off,
int len)
Reads up to
len bytes of data from this buffer into
an array of bytes. |
void |
reset()
Resets the buffer by clearing its state and stored content.
|
void |
shutdown() |
toString
@Deprecated public SharedInputBuffer(int buffersize, IOControl ioctrl, ByteBufferAllocator allocator)
SharedInputBuffer(int, ByteBufferAllocator)
public SharedInputBuffer(int buffersize, ByteBufferAllocator allocator)
public SharedInputBuffer(int buffersize)
public void reset()
ContentInputBuffer
reset
in interface ContentInputBuffer
@Deprecated public int consumeContent(ContentDecoder decoder) throws IOException
consumeContent(ContentDecoder, IOControl)
ContentInputBuffer
ContentDecoder
and stores it in
this buffer.consumeContent
in interface ContentInputBuffer
decoder
- the content decoder.IOException
- in case of an I/O error.public int consumeContent(ContentDecoder decoder, IOControl ioctrl) throws IOException
IOException
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
public void close()
public void shutdown()
public int read() throws IOException
ContentInputBuffer
-1
if the end of content stream has been reached.read
in interface ContentInputBuffer
IOException
public int read(byte[] b, int off, int len) throws IOException
ContentInputBuffer
len
bytes of data from this buffer into
an array of bytes. The exact number of bytes read depends how many bytes
are stored in the 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.
This method returns -1
if the end of content stream has been
reached.
read
in interface ContentInputBuffer
b
- the buffer into which the data is read.off
- the start offset in array b
at which the data is written.len
- the maximum number of bytes to read.-1
if there is no more data because the end of
the stream has been reached.IOException
- if an I/O error occurs.public int read(byte[] b) throws IOException
IOException
Copyright © 2010 - 2020 Adobe. All Rights Reserved