org.apache.commons.collections.buffer
Class BoundedBuffer
- BoundedCollection, Collection, Buffer, Serializable
public class BoundedBuffer
Decorates another
Buffer
to ensure a fixed maximum size.
Note: This class should only be used if you need to add bounded
behaviour to another buffer. If you just want a bounded buffer then
you should use
BoundedFifoBuffer
or
CircularFifoBuffer
.
The decoration methods allow you to specify a timeout value.
This alters the behaviour of the add methods when the buffer is full.
Normally, when the buffer is full, the add method will throw an exception.
With a timeout, the add methods will wait for up to the timeout period
to try and add the elements.
$Revision: 405927 $ $Date: 2006-05-12 23:57:03 +0100 (Fri, 12 May 2006) $- James Carman
- Stephen Colebourne
BoundedBuffer(Buffer buffer, int maximumSize, long timeout) - Constructor that wraps (not copies) another buffer, making it bounded
waiting only up to a maximum amount of time.
|
boolean | add(Object o)
|
boolean | addAll(Collection c)
|
static BoundedBuffer | decorate(Buffer buffer, int maximumSize) - Factory method to create a bounded buffer.
|
static BoundedBuffer | decorate(Buffer buffer, int maximumSize, long timeout) - Factory method to create a bounded buffer that blocks for a maximum
amount of time.
|
boolean | isFull() - Returns true if this collection is full and no new elements can be added.
|
Iterator | iterator() - Iterators must be manually synchronized.
|
int | maxSize() - Gets the maximum size of the collection (the bound).
|
Object | remove() - Gets and removes the next object from the buffer.
|
add , addAll , clear , contains , containsAll , decorate , equals , hashCode , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toArray , toString |
BoundedBuffer
protected BoundedBuffer(Buffer buffer,
int maximumSize,
long timeout)
Constructor that wraps (not copies) another buffer, making it bounded
waiting only up to a maximum amount of time.
buffer
- the buffer to wrap, must not be nullmaximumSize
- the maximum size, must be size one or greatertimeout
- the maximum amount of time to wait
decorate
public static BoundedBuffer decorate(Buffer buffer,
int maximumSize)
Factory method to create a bounded buffer.
When the buffer is full, it will immediately throw a
BufferOverflowException
on calling
add()
.
buffer
- the buffer to decorate, must not be nullmaximumSize
- the maximum size, must be size one or greater
decorate
public static BoundedBuffer decorate(Buffer buffer,
int maximumSize,
long timeout)
Factory method to create a bounded buffer that blocks for a maximum
amount of time.
buffer
- the buffer to decorate, must not be nullmaximumSize
- the maximum size, must be size one or greatertimeout
- the maximum amount of time to wait in milliseconds
isFull
public boolean isFull()
Returns true if this collection is full and no new elements can be added.
- isFull in interface BoundedCollection
true
if the collection is full
iterator
public Iterator iterator()
Iterators must be manually synchronized.
synchronized (coll) {
Iterator it = coll.iterator();
// do stuff with iterator
}
- iterator in interface SynchronizedCollection
- an iterator that must be manually synchronized on the collection
maxSize
public int maxSize()
Gets the maximum size of the collection (the bound).
- maxSize in interface BoundedCollection
- the maximum number of elements the collection can hold
remove
public Object remove()
Gets and removes the next object from the buffer.
- remove in interface Buffer
- remove in interface SynchronizedBuffer
- the next object in the buffer, which is also removed
Copyright © 2001-2009 Apache Software Foundation. All Rights Reserved.