org.eclipse.jetty.io.nio

## Class DirectNIOBuffer

- java.lang.Object
- - org.eclipse.jetty.io.AbstractBuffer
  - - org.eclipse.jetty.io.nio.DirectNIOBuffer

All Implemented Interfaces:
  Cloneable, Buffer, NIOBuffer

    public class DirectNIOBuffer
    extends AbstractBuffer
    implements NIOBuffer

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.eclipse.jetty.io.Buffer

`Buffer.CaseInsensitve`

### Field Summary

Fields
`protected ByteBuffer` `_buf`

### Fields inherited from class org.eclipse.jetty.io.AbstractBuffer

`__IMMUTABLE, __READONLY, __READWRITE, __VOLATILE, _access, _get, _hash, _hashGet, _hashPut, _mark, _put, _string, _view, _volatile`

### Fields inherited from interface org.eclipse.jetty.io.Buffer

`IMMUTABLE, NON_VOLATILE, READONLY, READWRITE, VOLATILE`

### Constructor Summary

Constructors
Constructor and Description
`DirectNIOBuffer(ByteBuffer buffer, boolean immutable)`
`DirectNIOBuffer(File file)`
`DirectNIOBuffer(int size)`

### Method Summary

Methods
`byte[]` `array()` Get the underlying array, if one exists.
`int` `capacity()` The capacity of the buffer.
`ByteBuffer` `getByteBuffer()`
`boolean` `isDirect()`
`byte` `peek(int position)` Get the byte at a specific index in the buffer.
`int` `peek(int index, byte[] b, int offset, int length)`
`int` `poke(int index, Buffer src)` Put the contents of the buffer at the specific index.
`void` `poke(int index, byte b)` Put a specific byte to a specific getIndex.
`int` `poke(int index, byte[] b, int offset, int length)` Put a specific byte to a specific getIndex.
`int` `readFrom(InputStream in, int max)` Read the buffer's contents from the input stream
`void` `writeTo(OutputStream out)` Write the buffer's contents to the output stream

### Methods inherited from class org.eclipse.jetty.io.AbstractBuffer

`asArray, asImmutableBuffer, asMutableBuffer, asNonVolatileBuffer, asReadOnlyBuffer, buffer, clear, compact, duplicate, equals, equalsIgnoreCase, get, get, get, getIndex, hasContent, hashCode, isImmutable, isReadOnly, isVolatile, length, mark, mark, markIndex, peek, peek, put, put, put, put, putIndex, reset, rewind, setGetIndex, setMarkIndex, setPutIndex, skip, slice, sliceFromMark, sliceFromMark, space, toDebugString, toDetailString, toString, toString`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.jetty.io.Buffer

`asArray, asImmutableBuffer, asMutableBuffer, asNonVolatileBuffer, asReadOnlyBuffer, buffer, clear, compact, equalsIgnoreCase, get, get, get, getIndex, hasContent, isImmutable, isReadOnly, isVolatile, length, mark, mark, markIndex, peek, peek, put, put, put, put, putIndex, reset, setGetIndex, setMarkIndex, setPutIndex, skip, slice, sliceFromMark, sliceFromMark, space, toDetailString, toString`

### Field Detail

#### _buf

    protected final ByteBuffer _buf

### Constructor Detail

#### DirectNIOBuffer

    public DirectNIOBuffer(int size)

#### DirectNIOBuffer

    public DirectNIOBuffer(ByteBuffer buffer,
                   boolean immutable)

#### DirectNIOBuffer

    public DirectNIOBuffer(File file)
                    throws IOException

Parameters:
  `file` -
Throws:
  `IOException`

### Method Detail

#### isDirect

    public boolean isDirect()

Specified by:
  `isDirect` in interface `NIOBuffer`

#### array

    public byte[] array()

Description copied from interface: `Buffer`
Get the underlying array, if one exists.

Specified by:
  `array` in interface `Buffer`
Returns:
  a `byte[]` backing this buffer or null if none exists.

#### capacity

    public int capacity()

Description copied from interface: `Buffer`
The capacity of the buffer. This is the maximum putIndex that may be set.

Specified by:
  `capacity` in interface `Buffer`
Returns:
  an `int` value

#### peek

    public byte peek(int position)

Description copied from interface: `Buffer`
Get the byte at a specific index in the buffer.

Specified by:
  `peek` in interface `Buffer`
Parameters:
  `position` - an `int` value
Returns:
  a `byte` value

#### peek

    public int peek(int index,
           byte[] b,
           int offset,
           int length)

Specified by:
  `peek` in interface `Buffer`
Parameters:
  `index` - an `int` value
  `b` - The byte array to peek into
  `offset` - The offset into the array to start peeking
  `length` - an `int` value
Returns:
  The number of bytes actually peeked

#### poke

    public void poke(int index,
            byte b)

Description copied from interface: `Buffer`
Put a specific byte to a specific getIndex.

Specified by:
  `poke` in interface `Buffer`
Parameters:
  `index` - an `int` value
  `b` - a `byte` value

#### poke

    public int poke(int index,
           Buffer src)

Description copied from interface: `Buffer`
Put the contents of the buffer at the specific index.

Specified by:
  `poke` in interface `Buffer`
Overrides:
  `poke` in class `AbstractBuffer`
Parameters:
  `index` - an `int` value
  `src` - a `Buffer`. If the source buffer is not modified
Returns:
  The number of bytes actually poked

#### poke

    public int poke(int index,
           byte[] b,
           int offset,
           int length)

Description copied from interface: `Buffer`
Put a specific byte to a specific getIndex.

Specified by:
  `poke` in interface `Buffer`
Overrides:
  `poke` in class `AbstractBuffer`
Parameters:
  `index` - an `int` value
  `b` - a `byte array` value
Returns:
  The number of bytes actually poked

#### getByteBuffer

    public ByteBuffer getByteBuffer()

Specified by:
  `getByteBuffer` in interface `NIOBuffer`

#### readFrom

    public int readFrom(InputStream in,
               int max)
                 throws IOException

Description copied from interface: `Buffer`
Read the buffer's contents from the input stream

Specified by:
  `readFrom` in interface `Buffer`
Overrides:
  `readFrom` in class `AbstractBuffer`
Parameters:
  `in` - input stream
  `max` - maximum number of bytes that may be read
Returns:
  actual number of bytes read or -1 for EOF
Throws:
  `IOException`

#### writeTo

    public void writeTo(OutputStream out)
                 throws IOException

Description copied from interface: `Buffer`
Write the buffer's contents to the output stream

Specified by:
  `writeTo` in interface `Buffer`
Overrides:
  `writeTo` in class `AbstractBuffer`
Throws:
  `IOException`