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.

  • Method Details

    • acquire

      ByteBuffer acquire(int size, boolean direct)

      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 buffer
      direct - whether the buffer must be direct or not
      Returns:
      the requested buffer
      See Also:
    • release

      void release(ByteBuffer buffer)

      Returns a ByteBuffer, usually obtained with acquire(int, boolean) (but not necessarily), making it available for recycling and reuse.

      Parameters:
      buffer - the buffer to return
      See Also:
    • remove

      default void remove(ByteBuffer buffer)

      Removes a ByteBuffer that was previously obtained with acquire(int, boolean).

      The buffer will not be available for further reuse.

      Parameters:
      buffer - the buffer to remove
      See Also:
    • newByteBuffer

      default ByteBuffer newByteBuffer(int capacity, boolean direct)

      Creates a new ByteBuffer of the given capacity and the given directness.

      Parameters:
      capacity - the ByteBuffer capacity
      direct - the ByteBuffer directness
      Returns:
      a newly allocated ByteBuffer