Interface BufferPool

All Known Implementing Classes:
CachingBufferPool, QuiescentBufferPool

public interface BufferPool
Makes various types of buffers available for use and potential re-use.

Implementations must be safe for concurrent use by multiple threads.

  • Method Details

    • allocateArray

      byte[] allocateArray(int size)
      Returns a byte[] of size or greater length.
      Parameters:
      size - The minimum size array required. Must be >= 0.
      Returns:
      A byte[] with length of at least size.
      See Also:
    • releaseArray

      void releaseArray(byte[] buffer)
      Returns instance to pool for potential future reuse.

      Must not be returned more than 1 time. Must not be used by caller after return.

      Parameters:
      buffer - Instance to return to pool. Must not be null. Must not be returned more than 1 time. Must not be used by caller after return.
    • allocateDirect

      ByteBuffer allocateDirect(int size)
      Returns a direct ByteBuffer of size or greater capacity.
      Parameters:
      size - The minimum size buffer required. Must be >= 0.
      Returns:
      A ByteBuffer of size or greater capacity.
      See Also:
    • releaseDirect

      void releaseDirect(ByteBuffer buffer)
      Returns instance to pool for potential future reuse.

      Must not be returned more than 1 time. Must not be used by caller after return.

      Parameters:
      buffer - Instance to return to pool. Must not be null. Must not be returned more than 1 time. Must not be used by caller after return.