Package org.apache.tools.ant.util

# Class OutputStreamFunneler

java.lang.Object
org.apache.tools.ant.util.OutputStreamFunneler

    public class OutputStreamFunneler
    extends java.lang.Object

Manages a set of `OutputStream`s to write to a single underlying stream, which is closed only when the last "funnel" has been closed.

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `static long` | `DEFAULT_TIMEOUT_MILLIS` | Default timeout.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `OutputStreamFunneler​(java.io.OutputStream out)` | Create a new `OutputStreamFunneler` for the specified `OutputStream`.
  `OutputStreamFunneler​(java.io.OutputStream out, long timeoutMillis)` | Create a new `OutputStreamFunneler` for the specified `OutputStream`, with the specified timeout value.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `java.io.OutputStream` | `getFunnelInstance()` | Get a "funnel" `OutputStream` instance to write to this `OutputStreamFunneler`'s underlying `OutputStream`.
  `void` | `setTimeout​(long timeoutMillis)` | Set the timeout for this `OutputStreamFunneler`.

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

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

- ## Field Details

  - ### DEFAULT_TIMEOUT_MILLIS

    public static final long DEFAULT_TIMEOUT_MILLIS
    Default timeout.
    See Also:
      `setTimeout(long)`, Constant Field Values

- ## Constructor Details

  - ### OutputStreamFunneler

    public OutputStreamFunneler​(java.io.OutputStream out)
    Create a new `OutputStreamFunneler` for the specified `OutputStream`.
    Parameters:
      `out` - `OutputStream`.

  - ### OutputStreamFunneler

    public OutputStreamFunneler​(java.io.OutputStream out, long timeoutMillis)
    Create a new `OutputStreamFunneler` for the specified `OutputStream`, with the specified timeout value.
    Parameters:
      `out` - `OutputStream`.
      `timeoutMillis` - `long`.
    See Also:
      `setTimeout(long)`

- ## Method Details

  - ### setTimeout

    public void setTimeout​(long timeoutMillis)
    Set the timeout for this `OutputStreamFunneler`. This is the maximum time that may elapse between the closure of the last "funnel" and the next call to `getOutputStream()` without closing the underlying stream.
    Parameters:
      `timeoutMillis` - `long` timeout value.

  - ### getFunnelInstance

    public java.io.OutputStream getFunnelInstance() throws java.io.IOException
    Get a "funnel" `OutputStream` instance to write to this `OutputStreamFunneler`'s underlying `OutputStream`.
    Returns:
      `OutputStream`.
    Throws:
      `java.io.IOException` - if unable to create the funnel.