Class ChunkedNioStream

  • All Implemented Interfaces:
    ChunkedInput<ByteBuf>

    public class ChunkedNioStream
    extends java.lang.Object
    implements ChunkedInput<ByteBuf>
    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.
    • Constructor Summary

      Constructors 
      Constructor Description
      ChunkedNioStream​(java.nio.channels.ReadableByteChannel in)
      Creates a new instance that fetches data from the specified channel.
      ChunkedNioStream​(java.nio.channels.ReadableByteChannel in, int chunkSize)
      Creates a new instance that fetches data from the specified channel.
    • Constructor Detail

      • ChunkedNioStream

        public ChunkedNioStream​(java.nio.channels.ReadableByteChannel in)
        Creates a new instance that fetches data from the specified channel.
      • ChunkedNioStream

        public ChunkedNioStream​(java.nio.channels.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 readChunk(ChannelHandlerContext) call
    • Method Detail

      • transferredBytes

        public long transferredBytes()
        Returns the number of transferred bytes.
      • isEndOfInput

        public boolean isEndOfInput()
                             throws java.lang.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<ByteBuf>
        Throws:
        java.lang.Exception
      • close

        public void close()
                   throws java.lang.Exception
        Description copied from interface: ChunkedInput
        Releases the resources associated with the input.
        Specified by:
        close in interface ChunkedInput<ByteBuf>
        Throws:
        java.lang.Exception
      • readChunk

        @Deprecated
        public ByteBuf readChunk​(ChannelHandlerContext ctx)
                          throws java.lang.Exception
        Deprecated.
        Specified by:
        readChunk in interface ChunkedInput<ByteBuf>
        Parameters:
        ctx - The context which provides a ByteBufAllocator if buffer allocation is necessary.
        Returns:
        the fetched chunk. 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:
        java.lang.Exception
      • readChunk

        public ByteBuf readChunk​(ByteBufAllocator allocator)
                          throws java.lang.Exception
        Description copied from interface: ChunkedInput
        Fetches a chunked data from the stream. Once this method returns the last chunk and thus the stream has reached at its end, any subsequent ChunkedInput.isEndOfInput() call must return true.
        Specified by:
        readChunk in interface ChunkedInput<ByteBuf>
        Parameters:
        allocator - ByteBufAllocator if buffer allocation is necessary.
        Returns:
        the fetched chunk. 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:
        java.lang.Exception
      • length

        public long length()
        Description copied from interface: ChunkedInput
        Returns the length of the input.
        Specified by:
        length in interface ChunkedInput<ByteBuf>
        Returns:
        the length of the input if the length of the input is known. a negative value if the length of the input is unknown.