## org.mortbay.io.nio
Class NIOBuffer

    java.lang.Object
      org.mortbay.io.AbstractBuffer
          org.mortbay.io.nio.NIOBuffer

All Implemented Interfaces:
  Cloneable, Buffer

    public class NIOBuffer

extends AbstractBuffer

Author:
  gregw

Nested Class Summary

Nested classes/interfaces inherited from interface org.mortbay.io.Buffer
`Buffer.CaseInsensitve`

Field Summary
`protected ByteBuffer` `_buf`
`static boolean` `DIRECT`
`static boolean` `INDIRECT`

Fields inherited from class org.mortbay.io.AbstractBuffer
`__IMMUTABLE, __READONLY, __READWRITE, __VOLATILE, _access, _get, _hash, _put, _string, _volatile`

Fields inherited from interface org.mortbay.io.Buffer
`IMMUTABLE, NON_VOLATILE, READONLY, READWRITE, VOLATILE`

Constructor Summary
`NIOBuffer(File file)`
`NIOBuffer(int size, boolean direct)`

Method Summary
`byte[]` `array()` Get the underlying array, if one exists.
`int` `capacity()` The capacity of the buffer.
`ByteBuffer` `getByteBuffer()`
`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 position, 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` `setByteBuffer(ByteBuffer buf)`
`void` `writeTo(OutputStream out)` Write the buffer's contents to the output stream

Methods inherited from class org.mortbay.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`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### DIRECT

    public static final boolean DIRECT

See Also:
  Constant Field Values

### INDIRECT

    public static final boolean INDIRECT

See Also:
  Constant Field Values

### _buf

    protected ByteBuffer _buf

Constructor Detail

### NIOBuffer

    public NIOBuffer(int size,
                     boolean direct)

### NIOBuffer

    public NIOBuffer(File file)
              throws IOException

Parameters:
  `file` -
Throws:
  `IOException`

Method Detail

### array

    public byte[] array()

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

  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.

  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.

  Parameters:
    `position` - an `int` value
  Returns:
    a `byte` value

### peek

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

  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 position,
                     byte b)

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

  Parameters:
    `position` - 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()

### setByteBuffer

    public void setByteBuffer(ByteBuffer buf)

### 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`

Copyright © 2007 Mort Bay Consulting. All Rights Reserved.