## org.apache.tools.ant.util
Class LeadPipeInputStream

    java.lang.Object
      java.io.InputStream
          java.io.PipedInputStream
              org.apache.tools.ant.util.LeadPipeInputStream

All Implemented Interfaces:
  java.io.Closeable

    public class LeadPipeInputStream

extends java.io.PipedInputStream

Special `PipedInputStream` that will not die when the writing `Thread` is no longer alive.

Since:
  Ant 1.6.2

Field Summary

Fields inherited from class java.io.PipedInputStream
`buffer, in, out, PIPE_SIZE`

Constructor Summary
`LeadPipeInputStream()` Construct a new `LeadPipeInputStream`.
`LeadPipeInputStream(int size)` Construct a new `LeadPipeInputStream` with the specified buffer size.
`LeadPipeInputStream(java.io.PipedOutputStream src)` Construct a new `LeadPipeInputStream` to pull from the specified `PipedOutputStream`.
`LeadPipeInputStream(java.io.PipedOutputStream src, int size)` Construct a new `LeadPipeInputStream` to pull from the specified `PipedOutputStream`, using a circular buffer of the specified size.

Method Summary
`void` `log(java.lang.String message, int loglevel)` Log a message with the specified logging level.
`int` `read()` Read a byte from the stream.
`void` `setBufferSize(int size)` Set the size of the buffer.
`void` `setManagingComponent(ProjectComponent pc)` Set a managing `ProjectComponent` for this `LeadPipeInputStream`.
`void` `setManagingTask(Task task)` Set a managing `Task` for this `LeadPipeInputStream`.

Methods inherited from class java.io.PipedInputStream
`available, close, connect, read, receive`

Methods inherited from class java.io.InputStream
`mark, markSupported, read, reset, skip`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### LeadPipeInputStream

    public LeadPipeInputStream()

  Construct a new `LeadPipeInputStream`.

### LeadPipeInputStream

    public LeadPipeInputStream(int size)

  Construct a new `LeadPipeInputStream` with the specified buffer size.

  Parameters:
    `size` - the size of the circular buffer.

### LeadPipeInputStream

    public LeadPipeInputStream(java.io.PipedOutputStream src)
                        throws java.io.IOException

  Construct a new `LeadPipeInputStream` to pull from the specified `PipedOutputStream`.

  Parameters:
    `src` - the `PipedOutputStream` source.
  Throws:
    `java.io.IOException` - if unable to construct the stream.

### LeadPipeInputStream

    public LeadPipeInputStream(java.io.PipedOutputStream src,
                               int size)
                        throws java.io.IOException

  Construct a new `LeadPipeInputStream` to pull from the specified `PipedOutputStream`, using a circular buffer of the specified size.

  Parameters:
    `src` - the `PipedOutputStream` source.
    `size` - the size of the circular buffer.
  Throws:
    `java.io.IOException` - if there is an error.

Method Detail

### read

    public int read()
             throws java.io.IOException

  Read a byte from the stream.

  Overrides:
    `read` in class `java.io.PipedInputStream`
  Returns:
    the byte (0 to 255) or -1 if there are no more.
  Throws:
    `java.io.IOException` - if there is an error.

### setBufferSize

    public void setBufferSize(int size)

  Set the size of the buffer.

  Parameters:
    `size` - the new buffer size. Ignored if <= current size.

### setManagingTask

    public void setManagingTask(Task task)

  Set a managing `Task` for this `LeadPipeInputStream`.

  Parameters:
    `task` - the managing `Task`.

### setManagingComponent

    public void setManagingComponent(ProjectComponent pc)

  Set a managing `ProjectComponent` for this `LeadPipeInputStream`.

  Parameters:
    `pc` - the managing `ProjectComponent`.

### log

    public void log(java.lang.String message,
                    int loglevel)

  Log a message with the specified logging level.

  Parameters:
    `message` - the `String` message.
    `loglevel` - the `int` logging level.