Helios++
Helios software for LiDAR simulations
CharFileReader.h
1 #pragma once
2 
3 #include <filems/read/comps/SimpleFileReader.h>
4 #include <filems/read/strategies/CharReadingStrategy.h>
5 
6 #include <memory>
7 
8 namespace helios { namespace filems{
9 
10 using std::make_shared;
11 using std::ios_base;
12 
20 class CharFileReader : public SimpleFileReader<char>{
21 protected:
22  // *** USING *** //
23  // *************** //
25 
26 public:
27  // *** CONSTRUCTION / DESTRUCTION *** //
28  // ************************************ //
34  string const &path,
35  ios_base::openmode openMode = ios_base::in
36  ) :
37  SimpleFileReader<char>(path, in)
38  {makeStrategy();}
39  virtual ~CharFileReader() = default;
40 
41 protected:
42  // *** INNER METHODS *** //
43  // *********************** //
48  void makeStrategy() override
49  {readingStrategy = make_shared<CharReadingStrategy>(ifs);}
50 };
51 
52 }}
Class for char by char reading of files.
Definition: CharFileReader.h:20
void makeStrategy() override
Build a char reading strategy for the char file reader.
Definition: CharFileReader.h:48
CharFileReader(string const &path, ios_base::openmode openMode=ios_base::in)
Default constructor for binary file reader.
Definition: CharFileReader.h:33
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
Abstract class defining the fundamental of any file reader that uses standard file input stream as re...
Definition: SimpleFileReader.h:25
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