Class ChunkedStream
java.lang.Object
org.jboss.netty.handler.stream.ChunkedStream
- All Implemented Interfaces:
ChunkedInput
A
ChunkedInput that fetches data from an InputStream chunk by
chunk.
Please note that the InputStream instance that feeds data into
ChunkedStream must implement InputStream.available() as
accurately as possible, rather than using the default implementation.
Otherwise, ChunkedStream will generate many too small chunks or
block unnecessarily often.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int(package private) static final intprivate final PushbackInputStreamprivate long -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance that fetches data from the specified stream.ChunkedStream(InputStream in, int chunkSize) Creates a new instance that fetches data from the specified stream. -
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
-
DEFAULT_CHUNK_SIZE
static final int DEFAULT_CHUNK_SIZE- See Also:
-
in
-
chunkSize
private final int chunkSize -
offset
private long offset
-
-
Constructor Details
-
ChunkedStream
Creates a new instance that fetches data from the specified stream. -
ChunkedStream
Creates a new instance that fetches data from the specified stream.- 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
-