# Package org.eclipse.net4j.buffer

The Net4j transport layer concepts for dealing with buffers.

- Interface Summary
  Interface | Description
  --- | ---
  IBuffer | Basic unit of transport in Net4j.
  IBufferHandler | Provides clients with the ability to pass `IBuffer`s in for further buffer handling.
  IBufferPool | Provides clients with the ability to obtain and retain pooled `IBuffer`s.
  IBufferPool.Introspection | Offers additional introspection features for `IBufferPool`s.
  IBufferProvider | Provides clients with the ability to obtain and retain `IBuffer`s.
  IBufferProvider.Introspection | Offers additional introspection features for `buffer providers`.
  IBufferProvider.Notification | Offers additional notification features for `buffer providers`.
  IBufferProvider.Notification.BufferProvidedEvent | An `event` fired from a `buffer provider` to indicate that a buffer has been provided.
  IBufferProvider.Notification.BufferRetainingEvent | An `event` fired from a `buffer provider` to indicate that a buffer is about to be retained.

- Class Summary
  Class | Description
  --- | ---
  BufferInputStream | A `buffer handler` that defragments the passed `buffers` into a continuous byte sequence which is exposed as an `input stream`.
  BufferOutputStream | An `output stream` that fragments the written byte sequence into fixed-sized `buffers` and passes them to configured `buffer handler`.

- Enum Summary
  Enum | Description
  --- | ---
  BufferState | Enumerates the internal states of an `IBuffer`.