Package org.apache.tools.ant.util

# Class OutputStreamFunneler

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

public class OutputStreamFunneler extends 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 final long`
  `DEFAULT_TIMEOUT_MILLIS`
  Default timeout.

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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(OutputStream out)
    Create a new `OutputStreamFunneler` for the specified `OutputStream`.
    Parameters:
      `out` - `OutputStream`.

  - ### OutputStreamFunneler

    public OutputStreamFunneler(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 OutputStream getFunnelInstance() throws IOException
    Get a "funnel" `OutputStream` instance to write to this `OutputStreamFunneler`'s underlying `OutputStream`.
    Returns:
      `OutputStream`.
    Throws:
      `IOException` - if unable to create the funnel.