Class FilterAllocator
- java.lang.Object
-
- org.simpleframework.common.buffer.FilterAllocator
-
- All Implemented Interfaces:
Allocator
- Direct Known Subclasses:
BufferAllocator
public class FilterAllocator extends java.lang.Object implements Allocator
TheFilterAllocator
object is used to provide a means to provide a general set of constraints around buffer allocation. It can ensure that a minimum capacity is used for default allocation and that an upper limit is used for allocation. In general this can be used in conjunction with anotherAllocator
which may not have such constraints. It ensures that a set of requirements can be observed when allocating buffers.
-
-
Field Summary
Fields Modifier and Type Field Description protected long
capacity
This is the default initial minimum capacity of the buffer.protected long
limit
This is the maximum number of bytes that can be allocated.protected Allocator
source
This is the allocator the underlying buffer is allocated with.
-
Constructor Summary
Constructors Constructor Description FilterAllocator(Allocator source)
Constructor for theFilterAllocator
object.FilterAllocator(Allocator source, long capacity)
Constructor for theFilterAllocator
object.FilterAllocator(Allocator source, long capacity, long limit)
Constructor for theFilterAllocator
object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Buffer
allocate()
This method is used to allocate a default buffer.Buffer
allocate(long size)
This method is used to allocate a default buffer.
-
-
-
Field Detail
-
source
protected Allocator source
This is the allocator the underlying buffer is allocated with.
-
capacity
protected long capacity
This is the default initial minimum capacity of the buffer.
-
limit
protected long limit
This is the maximum number of bytes that can be allocated.
-
-
Constructor Detail
-
FilterAllocator
public FilterAllocator(Allocator source)
Constructor for theFilterAllocator
object. This is used to instantiate the allocator with a default buffer size of half a kilobyte. This ensures that it can be used for general purpose byte storage and for minor I/O tasks.- Parameters:
source
- this is where the underlying buffer is allocated
-
FilterAllocator
public FilterAllocator(Allocator source, long capacity)
Constructor for theFilterAllocator
object. This is used to instantiate the allocator with a specified buffer size. This is typically used when a very specific buffer capacity is required, for example a request body with a known length.- Parameters:
source
- this is where the underlying buffer is allocatedcapacity
- the initial capacity of the allocated buffers
-
FilterAllocator
public FilterAllocator(Allocator source, long capacity, long limit)
Constructor for theFilterAllocator
object. This is used to instantiate the allocator with a specified buffer size. This is typically used when a very specific buffer capacity is required, for example a request body with a known length.- Parameters:
source
- this is where the underlying buffer is allocatedcapacity
- the initial capacity of the allocated bufferslimit
- this is the maximum buffer size created by this
-
-
Method Detail
-
allocate
public Buffer allocate() throws java.io.IOException
This method is used to allocate a default buffer. This will allocate a buffer of predetermined size, allowing it to grow to an upper limit to accommodate extra data. If the buffer requested is larger than the limit an exception is thrown.
-
allocate
public Buffer allocate(long size) throws java.io.IOException
This method is used to allocate a default buffer. This will allocate a buffer of predetermined size, allowing it to grow to an upper limit to accommodate extra data. If the buffer requested is larger than the limit an exception is thrown.
-
-