io.undertow.server

## Class DefaultByteBufferPool

- java.lang.Object
- - io.undertow.server.DefaultByteBufferPool

All Implemented Interfaces:
  ByteBufferPool, Closeable, AutoCloseable

    public class DefaultByteBufferPool
    extends Object
    implements ByteBufferPool

A byte buffer pool that supports reference counted pools. TODO: move this somewhere more appropriate

Author:
  Stuart Douglas

### Constructor Summary

Constructors
Constructor and Description
`DefaultByteBufferPool(boolean direct, int bufferSize)`
`DefaultByteBufferPool(boolean direct, int bufferSize, int maximumPoolSize, int threadLocalCacheSize)`
`DefaultByteBufferPool(boolean direct, int bufferSize, int maximumPoolSize, int threadLocalCacheSize, int leakDecetionPercent)`

### Method Summary

All Methods Instance Methods Concrete Methods
`PooledByteBuffer` `allocate()`
`void` `close()`
`protected void` `finalize()`
`ByteBufferPool` `getArrayBackedPool()` If this byte buffer pool corresponds to an array backed pool then this will return itself.
`int` `getBufferSize()`
`boolean` `isDirect()`

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DefaultByteBufferPool

    public DefaultByteBufferPool(boolean direct,
                                 int bufferSize)

Parameters:
  `direct` - If this implementation should use direct buffers
  `bufferSize` - The buffer size to use

#### DefaultByteBufferPool

    public DefaultByteBufferPool(boolean direct,
                                 int bufferSize,
                                 int maximumPoolSize,
                                 int threadLocalCacheSize,
                                 int leakDecetionPercent)

Parameters:
  `direct` - If this implementation should use direct buffers
  `bufferSize` - The buffer size to use
  `maximumPoolSize` - The maximum pool size, in number of buffers, it does not include buffers in thread local caches
  `threadLocalCacheSize` - The maximum number of buffers that can be stored in a thread local cache

#### DefaultByteBufferPool

    public DefaultByteBufferPool(boolean direct,
                                 int bufferSize,
                                 int maximumPoolSize,
                                 int threadLocalCacheSize)

Parameters:
  `direct` - If this implementation should use direct buffers
  `bufferSize` - The buffer size to use
  `maximumPoolSize` - The maximum pool size, in number of buffers, it does not include buffers in thread local caches
  `threadLocalCacheSize` - The maximum number of buffers that can be stored in a thread local cache

### Method Detail

#### getBufferSize

    public int getBufferSize()

Specified by:
  `getBufferSize` in interface `ByteBufferPool`

#### isDirect

    public boolean isDirect()

Specified by:
  `isDirect` in interface `ByteBufferPool`

#### allocate

    public PooledByteBuffer allocate()

Specified by:
  `allocate` in interface `ByteBufferPool`

#### getArrayBackedPool

    public ByteBufferPool getArrayBackedPool()

Description copied from interface: `ByteBufferPool`
If this byte buffer pool corresponds to an array backed pool then this will return itself. Otherwise it will return an array backed pool that contains buffers of the same size.

Specified by:
  `getArrayBackedPool` in interface `ByteBufferPool`
Returns:
  An array backed pool of the same size

#### close

    public void close()

Specified by:
  `close` in interface `ByteBufferPool`
Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`

#### finalize

    protected void finalize()
                     throws Throwable

Overrides:
  `finalize` in class `Object`
Throws:
  `Throwable`