Package org.eclipse.jetty.io
Interface ByteBufferPool
- All Known Implementing Classes:
AbstractByteBufferPool
,ArrayByteBufferPool
,LeakTrackingByteBufferPool
,MappedByteBufferPool
,MappedByteBufferPool.Tagged
,NullByteBufferPool
public interface ByteBufferPool
A ByteBuffer
pool.
Acquired buffers may be released
but they do not need to;
if they are released, they may be recycled and reused, otherwise they will be garbage
collected as usual.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
static class
-
Method Summary
Modifier and TypeMethodDescriptionacquire
(int size, boolean direct) Requests aByteBuffer
of the given size.default ByteBuffer
newByteBuffer
(int capacity, boolean direct) Creates a new ByteBuffer of the given capacity and the given directness.void
release
(ByteBuffer buffer) Returns aByteBuffer
, usually obtained withacquire(int, boolean)
(but not necessarily), making it available for recycling and reuse.default void
remove
(ByteBuffer buffer) Removes aByteBuffer
that was previously obtained withacquire(int, boolean)
.
-
Method Details
-
acquire
Requests a
ByteBuffer
of the given size.The returned buffer may have a bigger capacity than the size being requested but it will have the limit set to the given size.
- Parameters:
size
- the size of the bufferdirect
- whether the buffer must be direct or not- Returns:
- the requested buffer
- See Also:
-
release
Returns a
ByteBuffer
, usually obtained withacquire(int, boolean)
(but not necessarily), making it available for recycling and reuse.- Parameters:
buffer
- the buffer to return- See Also:
-
remove
Removes a
ByteBuffer
that was previously obtained withacquire(int, boolean)
.The buffer will not be available for further reuse.
- Parameters:
buffer
- the buffer to remove- See Also:
-
newByteBuffer
Creates a new ByteBuffer of the given capacity and the given directness.
- Parameters:
capacity
- the ByteBuffer capacitydirect
- the ByteBuffer directness- Returns:
- a newly allocated ByteBuffer
-