Package picard.util
Class CircularByteBuffer
- java.lang.Object
-
- picard.util.CircularByteBuffer
-
public class CircularByteBuffer extends Object
Implementation of a circular byte buffer that uses a large byte[] internally and supports basic read/write operations from/to other byte[]s passed as arguments. Uses wait/nofity() to manage cross-thread coordination when the buffer is either full or empty.
-
-
Constructor Summary
Constructors Constructor Description CircularByteBuffer(int size)
Constructs a buffer capable of holding the given number of bytes.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Signals that the buffer is closed and no further writes will occur.int
getBytesAvailableToRead()
Returns the number of bytes that are in the buffer at the time of the method invocation.int
getCapacity()
Returns the total capacity of the buffer (empty+filled).boolean
isClosed()
Returns true if the buffer is closed, false otherwise.int
read(byte[] bytes, int start, int size)
Read bytes from the buffer into the supplied array.int
write(byte[] bytes, int start, int size)
Write bytes into the buffer from the supplied array.
-
-
-
Method Detail
-
write
public int write(byte[] bytes, int start, int size)
Write bytes into the buffer from the supplied array. Will attempt to read 'size' bytes beginning at 'start' in the supplied array and copy them into the buffer. If the buffer is near full or cannot write 'size' bytes contiguously it may write fewer than 'size' bytes.- Returns:
- the number of bytes read from the input array and copied into the buffer
-
read
public int read(byte[] bytes, int start, int size)
Read bytes from the buffer into the supplied array. Will attempt to read 'size' bytes and write them into the supplied array beginning at index 'start' in the supplied array. If the buffer is near empty or cannot read 'size' bytes contiguously it may write fewer than 'size' bytes.- Returns:
- the number of bytes read from the buffer and copied into the input array
-
close
public void close()
Signals that the buffer is closed and no further writes will occur.
-
isClosed
public boolean isClosed()
Returns true if the buffer is closed, false otherwise.
-
getCapacity
public int getCapacity()
Returns the total capacity of the buffer (empty+filled).
-
getBytesAvailableToRead
public int getBytesAvailableToRead()
Returns the number of bytes that are in the buffer at the time of the method invocation.
-
-