## org.jboss.netty.handler.stream
Class ChunkedNioStream

    java.lang.Object
      org.jboss.netty.handler.stream.ChunkedNioStream

All Implemented Interfaces:
  ChunkedInput

    public class ChunkedNioStream

extends Object
implements ChunkedInput

A `ChunkedInput` that fetches data from a `ReadableByteChannel` chunk by chunk. Please note that the `ReadableByteChannel` must operate in blocking mode. Non-blocking mode channels are not supported.

Version:
  $Rev: 2236 $, $Date: 2010-04-12 19:22:51 +0900 (Mon, 12 Apr 2010) $
Author:
  The Netty Project, Trustin Lee, Frederic Bregier

Constructor Summary
`ChunkedNioStream(ReadableByteChannel in)` Creates a new instance that fetches data from the specified channel.
`ChunkedNioStream(ReadableByteChannel in, int chunkSize)` Creates a new instance that fetches data from the specified channel.

Method Summary
`void` `close()` Releases the resources associated with the stream.
`long` `getTransferredBytes()` Returns the number of transferred bytes.
`boolean` `hasNextChunk()` Returns `true` if and only if there is any data left in the stream.
`boolean` `isEndOfInput()` Return `true` if and only if there is no data left in the stream and the stream has reached at its end.
`Object` `nextChunk()` Fetches a chunked data from the stream.

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

Constructor Detail

### ChunkedNioStream

    public ChunkedNioStream(ReadableByteChannel in)

  Creates a new instance that fetches data from the specified channel.

### ChunkedNioStream

    public ChunkedNioStream(ReadableByteChannel in,
                            int chunkSize)

  Creates a new instance that fetches data from the specified channel.

  Parameters:
    `chunkSize` - the number of bytes to fetch on each `nextChunk()` call

Method Detail

### getTransferredBytes

    public long getTransferredBytes()

  Returns the number of transferred bytes.

### hasNextChunk

    public boolean hasNextChunk()
                         throws Exception

  Description copied from interface: `ChunkedInput`
  Returns `true` if and only if there is any data left in the stream. Please note that `false` does not necessarily mean that the stream has reached at its end. In a slow stream, the next chunk might be unavailable just momentarily.

  Specified by:
    `hasNextChunk` in interface `ChunkedInput`
  Throws:
    `Exception`

### isEndOfInput

    public boolean isEndOfInput()
                         throws Exception

  Description copied from interface: `ChunkedInput`
  Return `true` if and only if there is no data left in the stream and the stream has reached at its end.

  Specified by:
    `isEndOfInput` in interface `ChunkedInput`
  Throws:
    `Exception`

### close

    public void close()
               throws Exception

  Description copied from interface: `ChunkedInput`
  Releases the resources associated with the stream.

  Specified by:
    `close` in interface `ChunkedInput`
  Throws:
    `Exception`

### nextChunk

    public Object nextChunk()
                     throws Exception

  Description copied from interface: `ChunkedInput`
  Fetches a chunked data from the stream. The returned chunk is usually a `ChannelBuffer`, but you could extend an existing implementation to convert the `ChannelBuffer` into a different type that your handler or encoder understands.

  Specified by:
    `nextChunk` in interface `ChunkedInput`
  Returns:
    the fetched chunk, which is usually `ChannelBuffer`. `null` if there is no data left in the stream. Please note that `null` does not necessarily mean that the stream has reached at its end. In a slow stream, the next chunk might be unavailable just momentarily.
  Throws:
    `Exception`

Copyright © 2008-2010 JBoss, a division of Red Hat, Inc.. All Rights Reserved.