Helios++
Helios software for LiDAR simulations
SimpleVectorialSyncFileFullWaveformWriter.h
1 #pragma once
2 
3 #include <filems/write/comps/SimpleSyncFileWriter.h>
4 #include <filems/write/strategies/DirectFullWaveformWriteStrategy.h>
5 #include <filems/write/strategies/VectorialWriteStrategy.h>
6 #include <scanner/detector/FullWaveform.h>
7 
8 #include <memory>
9 #include <vector>
10 
11 namespace helios { namespace filems{
12 
13 using std::make_shared;
14 using std::vector;
15 
28  public SimpleSyncFileWriter<vector<FullWaveform> const &>
29 {
30 protected:
31  // *** ATTRIBUTES *** //
32  // ******************** //
40 
41 public:
42  // *** CONSTRUCTION / DESTRUCTION *** //
43  // ************************************ //
49  const std::string &path,
50  std::ios_base::openmode om = std::ios_base::app
51  ) :
52  SimpleSyncFileWriter<vector<FullWaveform> const &>(path, om),
53  dfwws(this->ofs)
54  {
55  this->writeStrategy = make_shared<VectorialWriteStrategy<
57  >>(dfwws);
58  }
59  virtual ~SimpleVectorialSyncFileFullWaveformWriter() = default;
60 };
61 
62 }}
Class representing a full waveform.
Definition: FullWaveform.h:12
Concrete class specializing WriteStrategy to directly write full waveform data to a file.
Definition: DirectFullWaveformWriteStrategy.h:22
Abstract specialization of SingleSyncFileWriter to write output directly to a file.
Definition: SimpleSyncFileWriter.h:23
std::ofstream ofs
Output file stream to be used by the simple synchronous file writer.
Definition: SimpleSyncFileWriter.h:31
Concrete class specializing SimpleSyncFileWriter to write a vector of full waveforms directly to a fi...
Definition: SimpleVectorialSyncFileFullWaveformWriter.h:29
DirectFullWaveformWriteStrategy dfwws
The full waveform write strategy that is wrapped by the main write strategy in a vectorial fashion ( ...
Definition: SimpleVectorialSyncFileFullWaveformWriter.h:39
SimpleVectorialSyncFileFullWaveformWriter(const std::string &path, std::ios_base::openmode om=std::ios_base::app)
Simple synchronous file full waveform vector writer constructor.
Definition: SimpleVectorialSyncFileFullWaveformWriter.h:48
std::string path
Path to file to be written.
Definition: SingleSyncFileWriter.h:28
std::shared_ptr< WriteStrategy< WriteArgs ... > > writeStrategy
The write strategy specifying how to write data to file.
Definition: SingleSyncFileWriter.h:36
Concrete class specializing WriteStrategy to make any other write strategy operate over a vector.
Definition: VectorialWriteStrategy.h:23