Package fr.gouv.vitam.common.stream
Class BoundedByteBuffer
java.lang.Object
fr.gouv.vitam.common.stream.BoundedByteBuffer
- All Implemented Interfaces:
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
Modifier and TypeClassDescriptionclass
Writes data to theBoundedByteBuffer
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
-
Method Summary
-
Constructor Details
-
BoundedByteBuffer
public BoundedByteBuffer(int bufferSize, int readerCount)
-
-
Method Details
-
getWriter
-
getReader
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-