Class ConstrainableInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.BufferedInputStream
com.itextpdf.styledxmlparser.jsoup.internal.ConstrainableInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public final class ConstrainableInputStream extends BufferedInputStream
A jsoup internal class (so don't use it as there is no contract API) that enables constraints on an Input Stream, namely a maximum read size, and the ability to Thread.interrupt() the read.
  • Field Details

    • DefaultSize

      private static final int DefaultSize
      See Also:
    • capped

      private final boolean capped
    • maxSize

      private final int maxSize
    • startTime

      private long startTime
    • timeout

      private long timeout
    • remaining

      private int remaining
  • Constructor Details

    • ConstrainableInputStream

      private ConstrainableInputStream(InputStream in, int bufferSize, int maxSize)
  • Method Details

    • wrap

      public static ConstrainableInputStream wrap(InputStream in, int bufferSize, int maxSize)
      If this InputStream is not already a ConstrainableInputStream, let it be one.
      Parameters:
      in - the input stream to (maybe) wrap
      bufferSize - the buffer size to use when reading
      maxSize - the maximum size to allow to be read. 0 == infinite.
      Returns:
      a constrainable input stream
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Overrides:
      read in class BufferedInputStream
      Throws:
      IOException
    • readToByteBuffer

      public ByteBuffer readToByteBuffer(int max) throws IOException
      Reads this inputstream to a ByteBuffer. The supplied max may be less than the inputstream's max, to support reading just the first bytes.
      Throws:
      IOException
    • reset

      public void reset() throws IOException
      Overrides:
      reset in class BufferedInputStream
      Throws:
      IOException
    • timeout

      public ConstrainableInputStream timeout(long startTimeNanos, long timeoutMillis)
    • expired

      private boolean expired()