Class ChunkedNioStream
java.lang.Object
org.jboss.netty.handler.stream.ChunkedNioStream
- All Implemented Interfaces:
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.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ByteBufferAssociated ByteBufferprivate final intprivate final ReadableByteChannelprivate long -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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
Modifier and TypeMethodDescriptionvoidclose()Releases the resources associated with the stream.longReturns the number of transferred bytes.booleanReturnstrueif and only if there is any data left in the stream.booleanReturntrueif and only if there is no data left in the stream and the stream has reached at its end.Fetches a chunked data from the stream.
-
Field Details
-
in
-
chunkSize
private final int chunkSize -
offset
private long offset -
byteBuffer
Associated ByteBuffer
-
-
Constructor Details
-
ChunkedNioStream
Creates a new instance that fetches data from the specified channel. -
ChunkedNioStream
Creates a new instance that fetches data from the specified channel.- Parameters:
chunkSize- the number of bytes to fetch on eachnextChunk()call
-
-
Method Details
-
getTransferredBytes
public long getTransferredBytes()Returns the number of transferred bytes. -
hasNextChunk
Description copied from interface:ChunkedInputReturnstrueif and only if there is any data left in the stream. Please note thatfalsedoes 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:
hasNextChunkin interfaceChunkedInput- Throws:
Exception
-
isEndOfInput
Description copied from interface:ChunkedInputReturntrueif and only if there is no data left in the stream and the stream has reached at its end.- Specified by:
isEndOfInputin interfaceChunkedInput- Throws:
Exception
-
close
Description copied from interface:ChunkedInputReleases the resources associated with the stream.- Specified by:
closein interfaceChunkedInput- Throws:
Exception
-
nextChunk
Description copied from interface:ChunkedInputFetches a chunked data from the stream. The returned chunk is usually aChannelBuffer, but you could extend an existing implementation to convert theChannelBufferinto a different type that your handler or encoder understands. Once this method returns the last chunk and thus the stream has reached at its end, any subsequentChunkedInput.isEndOfInput()call must returnfalse.- Specified by:
nextChunkin interfaceChunkedInput- Returns:
- the fetched chunk, which is usually
ChannelBuffer.nullif there is no data left in the stream. Please note thatnulldoes 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
-