Package org.jline.utils
Class NonBlockingReader
- java.lang.Object
-
- java.io.Reader
-
- org.jline.utils.NonBlockingReader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Readable
- Direct Known Subclasses:
NonBlocking.NonBlockingInputStreamReader
,NonBlockingPumpReader
,NonBlockingReaderImpl
public abstract class NonBlockingReader extends java.io.Reader
Non blocking reader
-
-
Field Summary
Fields Modifier and Type Field Description static int
EOF
static int
READ_EXPIRED
-
Constructor Summary
Constructors Constructor Description NonBlockingReader()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
available()
int
peek(long timeout)
Peeks to see if there is a byte waiting in the input stream without actually consuming the byte.int
read()
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
shutdown()
Shuts down the thread that is handling blocking I/O.
-
-
-
Field Detail
-
EOF
public static final int EOF
- See Also:
- Constant Field Values
-
READ_EXPIRED
public static final int READ_EXPIRED
- See Also:
- Constant Field Values
-
-
Method Detail
-
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 java.io.IOException
- Overrides:
read
in classjava.io.Reader
- Throws:
java.io.IOException
-
peek
public int peek(long timeout) throws java.io.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:
java.io.IOException
- if anything wrong happens
-
read
public int read(long timeout) throws java.io.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:
java.io.IOException
- if anything wrong happens
-
read
public int read(char[] b, int off, int len) throws java.io.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 classjava.io.Reader
- Parameters:
b
- the bufferoff
- the offset in the bufferlen
- the maximum number of chars to read- Throws:
java.io.IOException
- if anything wrong happens
-
readBuffered
public int readBuffered(char[] b) throws java.io.IOException
- Throws:
java.io.IOException
-
readBuffered
public int readBuffered(char[] b, long timeout) throws java.io.IOException
- Throws:
java.io.IOException
-
readBuffered
public abstract int readBuffered(char[] b, int off, int len, long timeout) throws java.io.IOException
- Throws:
java.io.IOException
-
available
public int available()
-
read
protected abstract int read(long timeout, boolean isPeek) throws java.io.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 characterisPeek
-true
if the character read must not be consumed- Returns:
- The character read, -1 if EOF is reached, or -2 if the read timed out.
- Throws:
java.io.IOException
- if anything wrong happens
-
-