|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.officefloor.plugin.stream.synchronise.SynchronizedInputBufferStream
public class SynchronizedInputBufferStream
Synchronised InputBufferStream.
| Constructor Summary | |
|---|---|
SynchronizedInputBufferStream(InputBufferStream backingStream,
Object mutex)
Initiate. |
|
| Method Summary | |
|---|---|
long |
available()
Provides an accurate number of bytes available in the BufferStream. |
void |
close()
Closes the stream releasing resources. |
InputStream |
getBrowseStream()
Obtains an InputStream that allows browsing the contents of the
BufferStream without changing the BufferStream markers. |
InputStream |
getInputStream()
Obtains the InputStream that reads the contents of the
BufferStream. |
int |
read(BufferProcessor processor)
Reads and processes the contents of a ByteBuffer from the
BufferStream. |
int |
read(byte[] readBuffer)
Reads the content from the BufferStream into the input buffer
returning the number of bytes loaded. |
int |
read(byte[] readBuffer,
int offset,
int length)
Reads the content from the BufferStream into the input buffer
returning the number of bytes loaded. |
int |
read(int numberOfBytes,
GatheringBufferProcessor processor)
Processes a batch number of ByteBuffer instances so that the
available data in the ByteBuffer instances is greater than or
equal to the number of bytes specified. |
int |
read(int numberOfBytes,
OutputBufferStream outputBufferStream)
Reads data from this BufferStream to the
OutputBufferStream. |
long |
skip(long numberOfBytes)
Skips the input number of bytes in the BufferStream. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public SynchronizedInputBufferStream(InputBufferStream backingStream,
Object mutex)
backingStream - Backing InputBufferStream.mutex - Mutex to synchronise on.| Method Detail |
|---|
public InputStream getInputStream()
InputBufferStream
Obtains the InputStream that reads the contents of the
BufferStream.
As the BufferStream is non-blocking any attempt to read data when
none is available will result in an IOException.
InputStream.available() is implemented to provide an accurate
size of available bytes.
getInputStream in interface InputBufferStreamInputStream to read from the BufferStream.public InputStream getBrowseStream()
InputBufferStream
Obtains an InputStream that allows browsing the contents of the
BufferStream without changing the BufferStream markers.
Once the available data has been browsed, further reads will return
BufferStream.END_OF_STREAM indicating end of stream of available
data. It is therefore optional for InputStream.available() to
provide the available bytes (unlike InputBufferStream.getInputStream().
getBrowseStream in interface InputBufferStreamInputStream to browse the BufferStream.
public int read(byte[] readBuffer)
throws IOException
InputBufferStreamBufferStream into the input buffer
returning the number of bytes loaded.
read in interface InputBufferStreamreadBuffer - Buffer to load BufferStream content.
BufferStream. Return of
BufferStream.END_OF_STREAM indicates end of stream with
no bytes loaded to buffer.
IOException - If fails to read input. Typically this will be because the
input is closed.
public int read(byte[] readBuffer,
int offset,
int length)
throws IOException
InputBufferStreamBufferStream into the input buffer
returning the number of bytes loaded.
read in interface InputBufferStreamreadBuffer - Buffer to load BufferStream content.offset - Offset of the input read buffer to start loading data from the
BufferStream.length - Maximum number of bytes to be loaded.
BufferStream. Return of
BufferStream.END_OF_STREAM indicates end of stream with
no bytes loaded to buffer.
IOException - If fails to read input. Typically this will be because the
input is closed.
public int read(BufferProcessor processor)
throws IOException
InputBufferStream
Reads and processes the contents of a ByteBuffer from the
BufferStream.
As ByteBuffer instances may be stored in varying sizes within the
BufferStream and data already consumed from them, the provided
ByteBuffer will have a variable number of bytes remaining.
read in interface InputBufferStreamprocessor - BufferProcessor to process the data of the
ByteBuffer.
ByteBuffer provided to the
BufferProcessor that were processed (read). Return of
BufferStream.END_OF_STREAM indicates end of stream.
IOException - If fails to read input. Typically this will be because the
input is closed.InputBufferStream.read(int, GatheringBufferProcessor)
public int read(int numberOfBytes,
GatheringBufferProcessor processor)
throws IOException
InputBufferStream
Processes a batch number of ByteBuffer instances so that the
available data in the ByteBuffer instances is greater than or
equal to the number of bytes specified.
Should the number of bytes be greater than the available, all
ByteBuffer instances are provided to the
GatheringBufferProcessor. In this case the provided data will be
less than the number of bytes specified.
Typically this will be used by gather operations such as with the
GatheringByteChannel and SSLEngine.
read in interface InputBufferStreamnumberOfBytes - Number of bytes to be processed from this
InputBufferStream.processor - GatheringBufferProcessor.
GatheringBufferProcessor.
IOException - If fails to read input. Typically this will be because the
input is closed.
public int read(int numberOfBytes,
OutputBufferStream outputBufferStream)
throws IOException
InputBufferStream
Reads data from this BufferStream to the
OutputBufferStream.
Only available bytes are read to the OutputBufferStream and
therefore the requested number of bytes may not be read. The return
provides the number of bytes read.
read in interface InputBufferStreamnumberOfBytes - Number of bytes to read into the OutputBufferStream.outputBufferStream - OutputBufferStream to receive the data.
OutputBufferStream.
Return of BufferStream.END_OF_STREAM indicates end of
stream.
IOException - If fails to read input. Typically this will be because the
input is closed.
public long skip(long numberOfBytes)
throws IOException
InputBufferStreamBufferStream. As there may
not be the available bytes to skip in the BufferStream, this
method returns the actual number of bytes skipped from the available
bytes.
skip in interface InputBufferStreamnumberOfBytes - Maximum number of bytes to skip.
BufferStream.
Return of BufferStream.END_OF_STREAM indicates end of
stream with no bytes skipped.
IOException - If fails to skip the bytes. Typically this will be because
the input is closed.
public long available()
throws IOException
InputBufferStreamBufferStream.
available in interface InputBufferStreamBufferStream. Return of
BufferStream.END_OF_STREAM indicates end of stream.
IOException - If fails to obtain available bytes.
public void close()
throws IOException
InputBufferStream
close in interface InputBufferStreamIOException - If fails to close.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||