Helios++
Helios software for LiDAR simulations
BufferedLineFileReader.h
1 #pragma once
2 
3 #include <filems/read/comps/LineFileReader.h>
4 #include <filems/read/strategies/BufferedReadingStrategy.h>
5 #include <filems/read/strategies/LineReadingStrategy.h>
6 
7 namespace helios { namespace filems{
8 
10 protected:
11  // *** USING *** //
12  // *************** //
15  using LineFileReader::ifs;
16 
17  // *** ATTRIBUTES *** //
18  // ******************** //
28  size_t bufferSize;
29 
30 public:
31  // *** CONSTRUCTION / DESTRUCTION *** //
32  // ************************************ //
37  string const &path,
38  std::ios_base::openmode openMode = std::ios_base::in,
39  long const maxCharsPerLine = 8192,
40  size_t const bufferSize = 100000
41  ) :
43  lrs(ifs, this->maxCharsPerLine),
46  virtual ~BufferedLineFileReader() = default;
47 
48 protected:
49  // *** INNER METHODS *** //
50  // *********************** //
56  void makeStrategy() override{
59  }
64  virtual void makeBufferedStrategy() {
65  readingStrategy = make_shared<BufferedReadingStrategy<string>>(
66  lrs,
68  );
69  }
70 
71 public:
72  // *** GETTERs and SETTERs *** //
73  // ***************************** //
80  virtual inline size_t getBufferSize() {return bufferSize;}
87  virtual void setBufferSize(size_t const bufferSize){
88  this->bufferSize = bufferSize;
90  }
91 };
92 
93 }}
Definition: BufferedLineFileReader.h:9
long maxCharsPerLine
The maximum number of characters that a line is expected to have.
Definition: LineFileReader.h:33
size_t bufferSize
The buffer size for the buffered strategy.
Definition: BufferedLineFileReader.h:28
virtual void makeBufferedStrategy()
Define the building of the buffered reading strategy itself.
Definition: BufferedLineFileReader.h:64
virtual void setBufferSize(size_t const bufferSize)
Get the buffer size for the buffered line file reader.
Definition: BufferedLineFileReader.h:87
BufferedLineFileReader(string const &path, std::ios_base::openmode openMode=std::ios_base::in, long const maxCharsPerLine=8192, size_t const bufferSize=100000)
Default constructor for buffered line file reader.
Definition: BufferedLineFileReader.h:36
virtual size_t getBufferSize()
Obtain the buffer size for the buffered line file reader.
Definition: BufferedLineFileReader.h:80
void makeStrategy() override
Build a buffered line reading strategy for the buffered line file reader.
Definition: BufferedLineFileReader.h:56
LineReadingStrategy lrs
The line reading strategy to be used for each single reading operation.
Definition: BufferedLineFileReader.h:24
shared_ptr< ReadingStrategy< ReadType > > readingStrategy
The reading strategy to be used by the file reader.
Definition: FileReader.h:32
string path
Path to the file to be read.
Definition: FileReader.h:27
Class supporting line by line reading of text files.
Definition: LineFileReader.h:18
long maxCharsPerLine
The maximum number of characters that a line is expected to have.
Definition: LineFileReader.h:33
Class defining the strategy to read line by line from a file input stream.
Definition: LineReadingStrategy.h:21
ifstream ifs
The input file stream to read from.
Definition: SimpleFileReader.h:37
ios_base::openmode openMode
The open mode flags for the input file stream.
Definition: SimpleFileReader.h:42