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 Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      byte[] allocateArray​(int size)
      Returns a byte[] of size or greater length.
      java.nio.ByteBuffer allocateDirect​(int size)
      Returns a direct ByteBuffer of size or greater capacity.
      void releaseArray​(byte[] buffer)
      Returns instance to pool for potential future reuse.
      void releaseDirect​(java.nio.ByteBuffer buffer)
      Returns instance to pool for potential future reuse.
    • Method Detail

      • 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(byte[])
      • 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

        java.nio.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(ByteBuffer), ByteBuffer.allocateDirect(int)
      • releaseDirect

        void releaseDirect​(java.nio.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.