|
com.Ostermiller.util Java Utilities |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.Ostermiller.util.CircularCharBuffer
public class CircularCharBuffer
Implements the Circular Buffer producer/consumer model for characters. More information about this class is available from ostermiller.org.
Using this class is a simpler alternative to using a PipedReader and a PipedWriter. PipedReaders and PipedWriters don't support the mark operation, don't allow you to control buffer sizes that they use, and have a more complicated API that requires instantiating two classes and connecting them.
This class is thread safe.
CircularByteBuffer
,
CircularObjectBuffer
Field Summary | |
---|---|
static int |
INFINITE_SIZE
A buffer that will grow as things are added. |
Constructor Summary | |
---|---|
CircularCharBuffer()
Create a new buffer with a default capacity. |
|
CircularCharBuffer(boolean blockingWrite)
Create a new buffer with a default capacity and given blocking behavior. |
|
CircularCharBuffer(int size)
Create a new buffer with given capacity. |
|
CircularCharBuffer(int size,
boolean blockingWrite)
Create a new buffer with the given capacity and blocking behavior. |
Method Summary | |
---|---|
void |
clear()
Make this buffer ready for reuse. |
int |
getAvailable()
Get number of characters that are available to be read. |
Reader |
getReader()
Retrieve a Reader that can be used to empty this buffer. |
int |
getSize()
Get the capacity of this buffer. |
int |
getSpaceLeft()
Get the number of characters this buffer has free for writing. |
Writer |
getWriter()
Retrieve a Writer that can be used to fill this buffer. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int INFINITE_SIZE
Constructor Detail |
---|
public CircularCharBuffer()
public CircularCharBuffer(int size)
Note that the buffer may reserve some characters for special purposes and capacity number of characters may not be able to be written to the buffer.
Note that if the buffer is of INFINITE_SIZE it will neither block or throw exceptions, but rather grow without bound.
size
- desired capacity of the buffer in characters or CircularCharBuffer.INFINITE_SIZEpublic CircularCharBuffer(boolean blockingWrite)
blockingWrite
- true writing to a full buffer should block
until space is available, false if an exception should
be thrown instead.public CircularCharBuffer(int size, boolean blockingWrite)
Note that the buffer may reserve some characters for special purposes and capacity number of characters may not be able to be written to the buffer.
Note that if the buffer is of CircularCharBuffer.INFINITE_SIZE it will neither block or throw exceptions, but rather grow without bound.
size
- desired capacity of the buffer in characters or CircularCharBuffer.INFINITE_SIZEblockingWrite
- true writing to a full buffer should block
until space is available, false if an exception should
be thrown instead.Method Detail |
---|
public void clear()
public Writer getWriter()
Write methods may throw a BufferOverflowException if the buffer is not large enough. A large enough buffer size must be chosen so that this does not happen or the caller must be prepared to catch the exception and try again once part of the buffer has been consumed.
public Reader getReader()
This Reader supports marks at the expense of the buffer size.
public int getAvailable()
Note that the number of characters available plus the number of characters free may not add up to the capacity of this buffer, as the buffer may reserve some space for other purposes.
public int getSpaceLeft()
Note that the number of characters available plus the number of characters free may not add up to the capacity of this buffer, as the buffer may reserve some space for other purposes.
public int getSize()
Note that the number of characters available plus the number of characters free may not add up to the capacity of this buffer, as the buffer may reserve some space for other purposes.
|
com.Ostermiller.util Java Utilities |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2001-2012 by Stephen Ostermiller