Class CancellableDigestOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable
    Direct Known Subclasses:
    PackOutputStream

    public class CancellableDigestOutputStream
    extends java.io.OutputStream
    An OutputStream that keeps a digest and checks every N bytes for cancellation.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void flush()
      byte[] getDigest()
      Obtain the current SHA-1 digest.
      ProgressMonitor getWriteMonitor()
      Get the monitor which is used to update on output progress and check cancel.
      long length()
      Get total number of bytes written since stream start.
      void write​(byte[] b, int off, int len)
      void write​(int b)
      • Methods inherited from class java.io.OutputStream

        close, nullOutputStream, write
      • Methods inherited from class java.lang.Object

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

      • BYTES_TO_WRITE_BEFORE_CANCEL_CHECK

        public static final int BYTES_TO_WRITE_BEFORE_CANCEL_CHECK
        The OutputStream checks every this value for cancellation
        See Also:
        Constant Field Values
      • out

        private final java.io.OutputStream out
      • md

        private final java.security.MessageDigest md
      • count

        private long count
      • checkCancelAt

        private long checkCancelAt
    • Constructor Detail

      • CancellableDigestOutputStream

        public CancellableDigestOutputStream​(ProgressMonitor writeMonitor,
                                             java.io.OutputStream out)
        Initialize a CancellableDigestOutputStream.
        Parameters:
        writeMonitor - monitor to update on output progress and check cancel.
        out - target stream to receive all contents.
    • Method Detail

      • getWriteMonitor

        public final ProgressMonitor getWriteMonitor()
        Get the monitor which is used to update on output progress and check cancel.
        Returns:
        the monitor
      • getDigest

        public final byte[] getDigest()
        Obtain the current SHA-1 digest.
        Returns:
        SHA-1 digest
      • length

        public final long length()
        Get total number of bytes written since stream start.
        Returns:
        total number of bytes written since stream start.
      • write

        public final void write​(int b)
                         throws java.io.IOException
        Specified by:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • write

        public final void write​(byte[] b,
                                int off,
                                int len)
                         throws java.io.IOException
        Overrides:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • flush

        public void flush()
                   throws java.io.IOException
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.io.OutputStream
        Throws:
        java.io.IOException