Package org.apache.jackrabbit.vault.util
Class InputStreamPump
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.jackrabbit.vault.util.InputStreamPump
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class InputStreamPump extends InputStream
An input stream pump feeds aInputStreamPump.Pumpin a dedicated thread with the input read from the given input stream. This is similar to aTeeInputStreambut leveragesPipedInputStreamandPipedOutputStreamand can execute additional tasks in the additional thread consuming the PipedInputStream. Only after callingclose()the PipedInputStream has been fully consumed (as it waits for the pump's thread to complete).- See Also:
MemoryArchive
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceInputStreamPump.Pump
-
Constructor Summary
Constructors Constructor Description InputStreamPump(InputStream source, InputStreamPump.Pump pump)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intavailable()voidclose()ExceptiongetError()Deprecated.Rather callclose(), as otherwise this might be called too early (before the thread finished).voidmark(int readlimit)booleanmarkSupported()intread()intread(byte[] b)intread(byte[] b, int off, int len)voidreset()longskip(long n)-
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Constructor Detail
-
InputStreamPump
public InputStreamPump(InputStream source, InputStreamPump.Pump pump) throws IOException
- Throws:
IOException
-
-
Method Detail
-
getError
@Deprecated public Exception getError()
Deprecated.Rather callclose(), as otherwise this might be called too early (before the thread finished).close()will automatically wrap the potential exception from the pump in an IOException and throws it as well- Returns:
- exception which has occurred in the pump thread or
null.
-
read
public int read() throws IOException- Specified by:
readin classInputStream- Throws:
IOException
-
read
public int read(byte[] b) throws IOException- Overrides:
readin classInputStream- Throws:
IOException
-
read
public int read(byte[] b, int off, int len) throws IOException- Overrides:
readin classInputStream- Throws:
IOException
-
skip
public long skip(long n) throws IOException- Overrides:
skipin classInputStream- Throws:
IOException
-
available
public int available() throws IOException- Overrides:
availablein classInputStream- Throws:
IOException
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException
-
mark
public void mark(int readlimit)
- Overrides:
markin classInputStream
-
reset
public void reset() throws IOException- Overrides:
resetin classInputStream- Throws:
IOException
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classInputStream
-
-