Class BoundedByteBuffer

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    public class BoundedByteBuffer
    extends java.lang.Object
    implements java.lang.AutoCloseable
    Buffer with buffering allowing One Writer and Multiple Readers. - Storage is done in a fixed size circular buffer (https://en.wikipedia.org/wiki/Circular_buffer) - Reader & writers are synchronized using multiple Producer-Consumer locks : (https://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem) - Writer can write till circular buffer is full. Then it blocks until free space is available (ALL readers have read some data) - Reader cannot read till the Writer writes data to the circular buffer.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  BoundedByteBuffer.Writer
      Writes data to the BoundedByteBuffer At the end of data, should write and End Of File (EOF) using the writeEOF() method Closing the Writer without EOF would throw a IOException (Broken stream) Non thread safe.
    • Constructor Summary

      Constructors 
      Constructor Description
      BoundedByteBuffer​(int bufferSize, int readerCount)  
    • Constructor Detail

      • BoundedByteBuffer

        public BoundedByteBuffer​(int bufferSize,
                                 int readerCount)
    • Method Detail

      • getReader

        public java.io.InputStream getReader​(int index)
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable