Class NotifyingBufferedInputStream

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

    public class NotifyingBufferedInputStream
    extends java.io.BufferedInputStream
    A buffered input stream that notifies every "chunk"
    Version:
    $Revision$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) int chunk
      The number of bytes read 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.BufferedInputStream

        buf, count, marklimit, markpos, pos
      • Fields inherited from class java.io.FilterInputStream

        in
    • 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
      int read()  
      int read​(byte[] b, int off, int len)  
      void setStreamListener​(StreamListener listener)  
      • Methods inherited from class java.io.BufferedInputStream

        available, close, mark, markSupported, reset, skip
      • Methods inherited from class java.io.FilterInputStream

        read
      • Methods inherited from class java.io.InputStream

        nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
      • 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 read in the current chunk
    • Constructor Detail

      • NotifyingBufferedInputStream

        public NotifyingBufferedInputStream​(java.io.InputStream is,
                                            int size,
                                            int chunkSize,
                                            StreamListener listener)
        Construct a notifying buffered inputstream. The listener is notified once every chunk.
        Parameters:
        is - the input stream to be buffered
        size - the buffer size
        chunkSize - the chunk size
        listener - the listener to notify
        Throws:
        java.lang.IllegalArgumentException - for a size <= 0 or chunkSize <= size
    • Method Detail

      • setStreamListener

        public void setStreamListener​(StreamListener listener)
      • read

        public int read()
                 throws java.io.IOException
        Overrides:
        read in class java.io.BufferedInputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.BufferedInputStream
        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 read