Class NotifyingBufferedOutputStream

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

    public class NotifyingBufferedOutputStream
    extends java.io.BufferedOutputStream
    A buffered output stream that notifies every "chunk"
    Version:
    $Revision$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) int chunk
      The number of bytes written in the current chunk
      (package private) int chunkSize
      The number of bytes between notifications
      (package private) StreamListener listener
      The listener notified every chunk
      • Fields inherited from class java.io.BufferedOutputStream

        buf, count
      • Fields inherited from class java.io.FilterOutputStream

        out
    • Constructor Summary

      Constructors 
      Constructor Description
      NotifyingBufferedOutputStream​(java.io.OutputStream os, int size, int chunkSize, StreamListener listener)
      Construct a notifying buffered outputstream.
      The listener is notified once every chunk.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void checkNotification​(int result)
      Checks whether a notification is required and notifies as appropriate
      void setStreamListener​(StreamListener listener)  
      void write​(byte[] b, int off, int len)  
      void write​(int b)  
      • Methods inherited from class java.io.BufferedOutputStream

        flush
      • Methods inherited from class java.io.FilterOutputStream

        close, write
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • chunkSize

        int chunkSize
        The number of bytes between notifications
      • chunk

        int chunk
        The number of bytes written in the current chunk
    • Constructor Detail

      • NotifyingBufferedOutputStream

        public NotifyingBufferedOutputStream​(java.io.OutputStream os,
                                             int size,
                                             int chunkSize,
                                             StreamListener listener)
        Construct a notifying buffered outputstream.
        The listener is notified once every chunk.
        Parameters:
        os - the output stream to be buffered
        size - the buffer size
        chunkSize - the chunk size
        listener -
        Throws:
        java.lang.IllegalArgumentException - for a size <= 0 or chunkSize <= size or a null listener
    • Method Detail

      • setStreamListener

        public void setStreamListener​(StreamListener listener)
      • write

        public void write​(int b)
                   throws java.io.IOException
        Overrides:
        write in class java.io.BufferedOutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.BufferedOutputStream
        Throws:
        java.io.IOException
      • checkNotification

        public void checkNotification​(int result)
        Checks whether a notification is required and notifies as appropriate
        Parameters:
        result - the number of bytes written