3 #include <filems/read/strategies/ReadingStrategy.h>
7 namespace helios {
namespace filems{
19 template <
typename ReadArg>
82 return buffer[bufferIndex];
Class defining a strategy that provides support for buffering of consecutive readings.
Definition: BufferedReadingStrategy.h:20
size_t bufferSize
The maximum number of ReadArg type elements that a buffer is allowed to hold.
Definition: BufferedReadingStrategy.h:28
size_t cachedMaxIndex
The cached index defining the next to the greatest admissible index for the current state of the buff...
Definition: BufferedReadingStrategy.h:46
virtual void setBufferSize(size_t const bufferSize)
Set the buffer size and update the buffer to fit.
Definition: BufferedReadingStrategy.h:127
size_t cachedIndex
The cached index defining the state of the buffer.
Definition: BufferedReadingStrategy.h:41
ReadArg * buffer
The buffer where multiple consecutive reads are stored.
Definition: BufferedReadingStrategy.h:32
ReadingStrategy< ReadArg > & readingStrategy
The reading strategy that is being extended with buffer support.
Definition: BufferedReadingStrategy.h:36
ReadArg read() override
Take until buffer is empty, read always that buffer needs to be fulfilled.
Definition: BufferedReadingStrategy.h:76
virtual bool isBufferEmpty() const
Check whether the buffer is empty or not.
Definition: BufferedReadingStrategy.h:109
BufferedReadingStrategy(ReadingStrategy< ReadArg > &readingStrategy, size_t const bufferSize=256)
Default constructor for buffered reading strategy.
Definition: BufferedReadingStrategy.h:55
virtual size_t getBufferSize()
Obtain the buffer size.
Definition: BufferedReadingStrategy.h:120
Class representing the end of reading exception for FMS readers.
Definition: EndOfReadingException.h:15
Abstract class defining the fundamentals of any file reading strategy.
Definition: ReadingStrategy.h:12
virtual ReadType read()=0
Read from file.