Class DemuxOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class DemuxOutputStream
    extends java.io.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

      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
      void close()
      Equivalent to flushing the stream.
      void flush()
      Writes all remaining data in the buffer associated with the current thread to the project.
      protected void processBuffer​(java.io.ByteArrayOutputStream buffer)
      Converts the buffer to a string and sends it to the project.
      protected void processFlush​(java.io.ByteArrayOutputStream buffer)
      Converts the buffer to a string and sends it to the project.
      void write​(byte[] b, int off, int len)
      Write a block of characters to the output stream
      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.
      • Methods inherited from class java.io.OutputStream

        nullOutputStream, write
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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

      • write

        public void write​(int cc)
                   throws java.io.IOException
        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.
        Specified by:
        write in class java.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.IOException
        Equivalent to flushing the stream.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.OutputStream
        Throws:
        java.io.IOException - if there is a problem closing the stream.
        See Also:
        flush()
      • flush

        public void flush()
                   throws java.io.IOException
        Writes all remaining data in the buffer associated with the current thread to the project.
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.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.IOException
        Write a block of characters to the output stream
        Overrides:
        write in class java.io.OutputStream
        Parameters:
        b - the array containing the data
        off - the offset into the array where data starts
        len - the length of block
        Throws:
        java.io.IOException - if the data cannot be written into the stream.