public class DynamicBuffer extends Object
This class provides an alternative method of storing data, used within the API where Piped Streams could have been used. We found that Piped streams would lock if a thread attempted to read to data when the OutputStream attached was not being read; since we have no control over when the user will actually read the data, this behaviour led us to develop this dynamic buffer which will automatically grow if the buffer is full.
*Modifier and Type | Field and Description |
---|---|
protected byte[] |
buf
The buffer
|
protected static int |
DEFAULT_BUFFER_SIZE
Buffer size when the dynamic buffer is opened
|
protected InputStream |
in
This buffers InputStream
|
protected OutputStream |
out
This buffers OutputStream
|
protected int |
readpos
The current read position
|
protected int |
writepos
The current write position
|
Constructor and Description |
---|
DynamicBuffer()
Creates a new DynamicBuffer object.
|
Modifier and Type | Method and Description |
---|---|
protected int |
available()
Return the number of bytes of data available to be read from the buffer
|
void |
close()
Closes the buffer
|
protected void |
flush()
Flush data
|
InputStream |
getInputStream()
Get the InputStream of this buffer.
|
OutputStream |
getOutputStream()
Get the OutputStream of the buffer.
|
long |
getTimeout() |
protected int |
read()
Read a byte from the buffer
|
protected int |
read(byte[] data,
int offset,
int len)
Read a byte array from the buffer
|
void |
setBlockInterrupt(int interrupt) |
void |
setTimeout(long timeout) |
protected void |
write(byte[] data,
int offset,
int len) |
protected void |
write(int b)
Write a byte array to the buffer
|
protected static final int DEFAULT_BUFFER_SIZE
protected byte[] buf
protected int writepos
protected int readpos
protected InputStream in
protected OutputStream out
public InputStream getInputStream()
public OutputStream getOutputStream()
public long getTimeout()
public void setTimeout(long timeout)
protected int available()
public void close()
protected void write(int b) throws IOException
b
- IOException
protected void write(byte[] data, int offset, int len) throws IOException
data
- offset
- len
- IOException
public void setBlockInterrupt(int interrupt)
protected int read() throws IOException
IOException
InterruptedIOException
protected int read(byte[] data, int offset, int len) throws IOException
data
- offset
- len
- IOException
InterruptedIOException
protected void flush() throws IOException
IOException
Copyright © 2024. All rights reserved.