org.eclipse.jgit.util.io

## Class StreamCopyThread

- java.lang.Object
- - java.lang.Thread
  - - org.eclipse.jgit.util.io.StreamCopyThread

All Implemented Interfaces:
  Runnable

    public class StreamCopyThread
    extends Thread

Thread to copy from an input stream to an output stream.

### Nested Class Summary

### Nested classes/interfaces inherited from class java.lang.Thread

`Thread.State, Thread.UncaughtExceptionHandler`

### Field Summary

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

### Constructor Summary

Constructors
Constructor and Description
`StreamCopyThread(InputStream i, OutputStream o)` Create a thread to copy data from an input stream to an output stream.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `flush()` Request the thread to flush the output stream as soon as possible.
`void` `halt()` Request that the thread terminate, and wait for it.
`void` `run()`

### Methods inherited from class java.lang.Thread

`activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### StreamCopyThread

    public StreamCopyThread(InputStream i,
                            OutputStream o)

Create a thread to copy data from an input stream to an output stream.

Parameters:
  `i` - stream to copy from. The thread terminates when this stream reaches EOF. The thread closes this stream before it exits.
  `o` - stream to copy into. The destination stream is automatically closed when the thread terminates.

### Method Detail

#### flush

    public void flush()

Request the thread to flush the output stream as soon as possible.

This is an asynchronous request to the thread. The actual flush will happen at some future point in time, when the thread wakes up to process the request.

#### halt

    public void halt()
              throws InterruptedException

Request that the thread terminate, and wait for it.

This method signals to the copy thread that it should stop as soon as there is no more IO occurring.

Throws:
  `InterruptedException` - the calling thread was interrupted.

#### run

    public void run()

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`