Package org.apache.tools.ant
Class DemuxOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.tools.ant.DemuxOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
public class DemuxOutputStream extends java.io.OutputStreamLogs 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
Constructors Constructor Description DemuxOutputStream(Project project, boolean isErrorStream)Creates a new instance of this class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Equivalent to flushing the stream.voidflush()Writes all remaining data in the buffer associated with the current thread to the project.protected voidprocessBuffer(java.io.ByteArrayOutputStream buffer)Converts the buffer to a string and sends it to the project.protected voidprocessFlush(java.io.ByteArrayOutputStream buffer)Converts the buffer to a string and sends it to the project.voidwrite(byte[] b, int off, int len)Write a block of characters to the output streamvoidwrite(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.
-
-
-
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 benull.isErrorStream-trueif 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
-
write
public void write(int cc) throws java.io.IOExceptionWrites the data to the buffer and flushes the buffer if a line separator is detected or if the buffer has reached its maximum size.- Specified by:
writein classjava.io.OutputStream- Parameters:
cc- data to log (byte).- Throws:
java.io.IOException- if the data cannot be written to the stream
-
processBuffer
protected void processBuffer(java.io.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.demuxOutput(String,boolean)
-
processFlush
protected void processFlush(java.io.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.demuxOutput(String,boolean)
-
close
public void close() throws java.io.IOExceptionEquivalent to flushing the stream.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.OutputStream- Throws:
java.io.IOException- if there is a problem closing the stream.- See Also:
flush()
-
flush
public void flush() throws java.io.IOExceptionWrites all remaining data in the buffer associated with the current thread to the project.- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classjava.io.OutputStream- Throws:
java.io.IOException- if there is a problem flushing the stream.
-
write
public void write(byte[] b, int off, int len) throws java.io.IOExceptionWrite a block of characters to the output stream- Overrides:
writein classjava.io.OutputStream- Parameters:
b- the array containing the dataoff- the offset into the array where data startslen- the length of block- Throws:
java.io.IOException- if the data cannot be written into the stream.
-
-