Package org.jline.utils
Class NonBlockingReader
java.lang.Object
java.io.Reader
org.jline.utils.NonBlockingReader
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Readable
- Direct Known Subclasses:
NonBlockingPumpReader
,NonBlockingReaderImpl
Non blocking reader
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
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.Methods inherited from class java.io.Reader
close, mark, markSupported, nullReader, read, read, ready, reset, skip, transferTo
-
Field Details
-
EOF
public static final int EOF- See Also:
-
READ_EXPIRED
public static final int READ_EXPIRED- See Also:
-
-
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
- Overrides:
read
in classReader
- Throws:
IOException
-
peek
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
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
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 classReader
- Parameters:
b
- the bufferoff
- the offset in the bufferlen
- the maximum number of chars to read- Throws:
IOException
- if anything wrong happens
-
readBuffered
- Throws:
IOException
-
readBuffered
- Throws:
IOException
-
readBuffered
- Throws:
IOException
-
available
public int available() -
read
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:
IOException
- if anything wrong happens
-