org.apache.tools.ant

Class DemuxOutputStream

public class DemuxOutputStream extends OutputStream

Logs content written by a thread and forwards the buffers onto the project object which will forward the content to the appropriate task.

Since: 1.4

Constructor Summary
DemuxOutputStream(Project project, boolean isErrorStream)
Creates a new instance of this class.
Method Summary
voidclose()
Equivalent to flushing the stream.
voidflush()
Writes all remaining data in the buffer associated with the current thread to the project.
protected voidprocessBuffer(ByteArrayOutputStream buffer)
Converts the buffer to a string and sends it to the project.
protected voidprocessFlush(ByteArrayOutputStream buffer)
Converts the buffer to a string and sends it to the project.
voidwrite(int cc)
Writes the data to the buffer and flushes the buffer if a line separator is detected or if the buffer has reached its maximum size.
voidwrite(byte[] b, int off, int len)
Write a block of characters to the output stream

Constructor Detail

DemuxOutputStream

public DemuxOutputStream(Project project, boolean isErrorStream)
Creates a new instance of this class.

Parameters: project The project instance for which output is being demultiplexed. Must not be null. isErrorStream true if this is the error string, otherwise a normal output stream. This is passed to the project so it knows which stream it is receiving.

Method Detail

close

public void close()
Equivalent to flushing the stream.

Throws: IOException if there is a problem closing the stream.

See Also: DemuxOutputStream

flush

public void flush()
Writes all remaining data in the buffer associated with the current thread to the project.

Throws: IOException if there is a problem flushing the stream.

processBuffer

protected void processBuffer(ByteArrayOutputStream buffer)
Converts the buffer to a string and sends it to the project.

Parameters: buffer the ByteArrayOutputStream used to collect the output until a line separator is seen.

See Also: Project

processFlush

protected void processFlush(ByteArrayOutputStream buffer)
Converts the buffer to a string and sends it to the project.

Parameters: buffer the ByteArrayOutputStream used to collect the output until a line separator is seen.

See Also: Project

write

public void write(int cc)
Writes the data to the buffer and flushes the buffer if a line separator is detected or if the buffer has reached its maximum size.

Parameters: cc data to log (byte).

Throws: IOException if the data cannot be written to the stream

write

public void write(byte[] b, int off, int len)
Write a block of characters to the output stream

Parameters: b the array containing the data off the offset into the array where data starts len the length of block

Throws: IOException if the data cannot be written into the stream.

Copyright