Package org.eclipse.net4j.buffer

# Interface IBufferPool

All Superinterfaces:
  `IBufferProvider`

All Known Subinterfaces:
  `IBufferPool.Introspection`

public interface IBufferPool extends IBufferProvider
Provides clients with the ability to obtain and retain pooled `IBuffer`s.

Author:
  Eike Stepper

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`IBufferPool.Introspection`
Offers additional introspection features for `IBufferPool`s.

## Nested classes/interfaces inherited from interface org.eclipse.net4j.buffer.IBufferProvider

`IBufferProvider.Notification`

## Method Summary

Modifier and Type
Method
Description
`int`
`evict(int survivors)`
Tries to remove as many buffers from this `BufferPool` and `release` them as are needed to let a given maximum number of buffers survive in the pool.
`boolean`
`evictOne()`
Tries to remove a single buffer from this `BufferPool` and `release` it.

### Methods inherited from interface org.eclipse.net4j.buffer.IBufferProvider

`getBufferCapacity, provideBuffer, retainBuffer`

## Method Details

### evictOne

boolean evictOne()
Tries to remove a single buffer from this `BufferPool` and `release` it.

Returns:
  `true` if a buffer could be evicted, `false` otherwise.

### evict

int evict(int survivors)
Tries to remove as many buffers from this `BufferPool` and `release` them as are needed to let a given maximum number of buffers survive in the pool.

Returns:
  The number of buffers that could be evicted.