Package org.eclipse.jgit.util.io
Class TimeoutOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.eclipse.jgit.util.io.TimeoutOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class TimeoutOutputStream extends java.io.OutputStream
OutputStream with a configurable timeout.
-
-
Field Summary
Fields Modifier and Type Field Description private java.io.OutputStream
dst
private InterruptTimer
myTimer
private int
timeout
-
Constructor Summary
Constructors Constructor Description TimeoutOutputStream(java.io.OutputStream destination, InterruptTimer timer)
Wrap an output stream with a timeout on all write operations.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
beginWrite()
void
close()
private void
endWrite()
void
flush()
int
getTimeout()
Get number of milliseconds before aborting a write.void
setTimeout(int millis)
Set number of milliseconds before aborting a write.void
write(byte[] buf)
void
write(byte[] buf, int off, int len)
void
write(int b)
private java.io.InterruptedIOException
writeTimedOut(java.io.InterruptedIOException cause)
-
-
-
Field Detail
-
dst
private final java.io.OutputStream dst
-
myTimer
private final InterruptTimer myTimer
-
timeout
private int timeout
-
-
Constructor Detail
-
TimeoutOutputStream
public TimeoutOutputStream(java.io.OutputStream destination, InterruptTimer timer)
Wrap an output stream with a timeout on all write operations.- Parameters:
destination
- base input stream (to write to). The stream must be interruptible (most socket streams are).timer
- timer to manage the timeouts during writes.
-
-
Method Detail
-
getTimeout
public int getTimeout()
Get number of milliseconds before aborting a write.- Returns:
- number of milliseconds before aborting a write.
-
setTimeout
public void setTimeout(int millis)
Set number of milliseconds before aborting a write.- Parameters:
millis
- number of milliseconds before aborting a write. Must be > 0.
-
write
public void write(int b) throws java.io.IOException
- Specified by:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] buf) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] buf, int off, int len) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
beginWrite
private void beginWrite()
-
endWrite
private void endWrite()
-
writeTimedOut
private java.io.InterruptedIOException writeTimedOut(java.io.InterruptedIOException cause)
-
-