Class DeltaInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class DeltaInputStream
    extends java.io.InputStream
    Decodes raw Delta-filtered data (no XZ headers).

    The delta filter doesn't change the size of the data and thus it cannot have an end-of-payload marker. It will simply decode until its input stream indicates end of input.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DISTANCE_MAX
      Largest supported delta calculation distance.
      static int DISTANCE_MIN
      Smallest supported delta calculation distance.
    • Constructor Summary

      Constructors 
      Constructor Description
      DeltaInputStream​(java.io.InputStream in, int distance)
      Creates a new Delta decoder with the given delta calculation distance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      Calls in.available().
      void close()
      Closes the stream and calls in.close().
      int read()
      Decode the next byte from this input stream.
      int read​(byte[] buf, int off, int len)
      Decode into an array of bytes.
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DISTANCE_MIN

        public static final int DISTANCE_MIN
        Smallest supported delta calculation distance.
        See Also:
        Constant Field Values
      • DISTANCE_MAX

        public static final int DISTANCE_MAX
        Largest supported delta calculation distance.
        See Also:
        Constant Field Values
    • Constructor Detail

      • DeltaInputStream

        public DeltaInputStream​(java.io.InputStream in,
                                int distance)
        Creates a new Delta decoder with the given delta calculation distance.
        Parameters:
        in - input stream from which Delta filtered data is read
        distance - delta calculation distance, must be in the range [DISTANCE_MIN, DISTANCE_MAX]
    • Method Detail

      • read

        public int read()
                 throws java.io.IOException
        Decode the next byte from this input stream.
        Specified by:
        read in class java.io.InputStream
        Returns:
        the next decoded byte, or -1 to indicate the end of input on the input stream in
        Throws:
        java.io.IOException - may be thrown by in
      • read

        public int read​(byte[] buf,
                        int off,
                        int len)
                 throws java.io.IOException
        Decode into an array of bytes.

        This calls in.read(buf, off, len) and defilters the returned data.

        Overrides:
        read in class java.io.InputStream
        Parameters:
        buf - target buffer for decoded data
        off - start offset in buf
        len - maximum number of bytes to read
        Returns:
        number of bytes read, or -1 to indicate the end of the input stream in
        Throws:
        XZIOException - if the stream has been closed
        java.io.IOException - may be thrown by underlaying input stream in
      • available

        public int available()
                      throws java.io.IOException
        Calls in.available().
        Overrides:
        available in class java.io.InputStream
        Returns:
        the value returned by in.available()
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Closes the stream and calls in.close(). If the stream was already closed, this does nothing.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException - if thrown by in.close()