Class NonBlockingReader

java.lang.Object
java.io.Reader
org.jline.utils.NonBlockingReader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable
Direct Known Subclasses:
NonBlockingPumpReader, NonBlockingReaderImpl

public abstract class NonBlockingReader extends Reader
Non blocking reader
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     

    Fields inherited from class java.io.Reader

    lock
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    int
    peek(long timeout)
    Peeks to see if there is a byte waiting in the input stream without actually consuming the byte.
    int
     
    int
    read(char[] b, int off, int len)
    This version of read() is very specific to jline's purposes, it will always always return a single byte at a time, rather than filling the entire buffer.
    int
    read(long timeout)
    Attempts to read a character from the input stream for a specific period of time.
    protected abstract int
    read(long timeout, boolean isPeek)
    Attempts to read a character from the input stream for a specific period of time.
    int
    readBuffered(char[] b)
     
    abstract int
    readBuffered(char[] b, int off, int len, long timeout)
     
    int
    readBuffered(char[] b, long timeout)
     
    void
    Shuts down the thread that is handling blocking I/O.

    Methods inherited from class java.io.Reader

    close, mark, markSupported, nullReader, read, read, ready, reset, skip, transferTo

    Methods inherited from class java.lang.Object

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

  • Constructor Details

    • NonBlockingReader

      public NonBlockingReader()
  • Method Details

    • shutdown

      public void shutdown()
      Shuts down the thread that is handling blocking I/O. Note that if the thread is currently blocked waiting for I/O it will not actually shut down until the I/O is received.
    • read

      public int read() throws IOException
      Overrides:
      read in class Reader
      Throws:
      IOException
    • peek

      public int peek(long timeout) throws IOException
      Peeks to see if there is a byte waiting in the input stream without actually consuming the byte.
      Parameters:
      timeout - The amount of time to wait, 0 == forever
      Returns:
      -1 on eof, -2 if the timeout expired with no available input or the character that was read (without consuming it).
      Throws:
      IOException - if anything wrong happens
    • read

      public int read(long timeout) throws IOException
      Attempts to read a character from the input stream for a specific period of time.
      Parameters:
      timeout - The amount of time to wait for the character
      Returns:
      The character read, -1 if EOF is reached, or -2 if the read timed out.
      Throws:
      IOException - if anything wrong happens
    • read

      public int read(char[] b, int off, int len) throws IOException
      This version of read() is very specific to jline's purposes, it will always always return a single byte at a time, rather than filling the entire buffer.
      Specified by:
      read in class Reader
      Parameters:
      b - the buffer
      off - the offset in the buffer
      len - the maximum number of chars to read
      Throws:
      IOException - if anything wrong happens
    • readBuffered

      public int readBuffered(char[] b) throws IOException
      Throws:
      IOException
    • readBuffered

      public int readBuffered(char[] b, long timeout) throws IOException
      Throws:
      IOException
    • readBuffered

      public abstract int readBuffered(char[] b, int off, int len, long timeout) throws IOException
      Throws:
      IOException
    • available

      public int available()
    • read

      protected abstract int read(long timeout, boolean isPeek) throws IOException
      Attempts to read a character from the input stream for a specific period of time.
      Parameters:
      timeout - The amount of time to wait for the character
      isPeek - trueif the character read must not be consumed
      Returns:
      The character read, -1 if EOF is reached, or -2 if the read timed out.
      Throws:
      IOException - if anything wrong happens