Package org.apache.jackrabbit.vault.util
Class InputStreamPump
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.jackrabbit.vault.util.InputStreamPump
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class InputStreamPump extends java.io.InputStreamAn 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(java.io.InputStream source, InputStreamPump.Pump pump)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intavailable()voidclose()java.lang.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)
-
-
-
Constructor Detail
-
InputStreamPump
public InputStreamPump(java.io.InputStream source, InputStreamPump.Pump pump) throws java.io.IOException- Throws:
java.io.IOException
-
-
Method Detail
-
getError
@Deprecated public java.lang.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 java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException- Overrides:
skipin classjava.io.InputStream- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
mark
public void mark(int readlimit)
- Overrides:
markin classjava.io.InputStream
-
reset
public void reset() throws java.io.IOException- Overrides:
resetin classjava.io.InputStream- Throws:
java.io.IOException
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classjava.io.InputStream
-
-