Class ChunkedFile

    • Constructor Summary

      Constructors 
      Constructor Description
      ChunkedFile​(File file)
      Creates a new instance that fetches data from the specified file.
      ChunkedFile​(File file, int chunkSize)
      Creates a new instance that fetches data from the specified file.
      ChunkedFile​(RandomAccessFile file)
      Creates a new instance that fetches data from the specified file.
      ChunkedFile​(RandomAccessFile file, int chunkSize)
      Creates a new instance that fetches data from the specified file.
      ChunkedFile​(RandomAccessFile file, long offset, long length, int chunkSize)
      Creates a new instance that fetches data from the specified file.
    • Constructor Detail

      • ChunkedFile

        public ChunkedFile​(File file)
                    throws IOException
        Creates a new instance that fetches data from the specified file.
        Throws:
        IOException
      • ChunkedFile

        public ChunkedFile​(File file,
                           int chunkSize)
                    throws IOException
        Creates a new instance that fetches data from the specified file.
        Parameters:
        chunkSize - the number of bytes to fetch on each readChunk(BufferAllocator) call
        Throws:
        IOException
      • ChunkedFile

        public ChunkedFile​(RandomAccessFile file,
                           long offset,
                           long length,
                           int chunkSize)
                    throws IOException
        Creates a new instance that fetches data from the specified file.
        Parameters:
        offset - the offset of the file where the transfer begins
        length - the number of bytes to transfer
        chunkSize - the number of bytes to fetch on each readChunk(BufferAllocator) call
        Throws:
        IOException
    • Method Detail

      • startOffset

        public long startOffset()
        Returns the offset in the file where the transfer began.
      • endOffset

        public long endOffset()
        Returns the offset in the file where the transfer will end.
      • currentOffset

        public long currentOffset()
        Returns the offset in the file where the transfer is happening currently.
      • 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<io.netty5.buffer.api.Buffer>
        Throws:
        Exception
      • readChunk

        public io.netty5.buffer.api.Buffer readChunk​(io.netty5.buffer.api.BufferAllocator allocator)
                                              throws 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<io.netty5.buffer.api.Buffer>
        Parameters:
        allocator - BufferAllocator 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:
        Exception
      • length

        public long length()
        Description copied from interface: ChunkedInput
        Returns the length of the input.
        Specified by:
        length in interface ChunkedInput<io.netty5.buffer.api.Buffer>
        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.
      • progress

        public long progress()
        Description copied from interface: ChunkedInput
        Returns current transfer progress.
        Specified by:
        progress in interface ChunkedInput<io.netty5.buffer.api.Buffer>