Helios++
Helios software for LiDAR simulations
SimpleVectorialSyncFileMeasurementWriter.h
1 #pragma once
2 
3 #include <filems/write/comps/SimpleSyncFileWriter.h>
4 #include <filems/write/strategies/DirectMeasurementWriteStrategy.h>
5 #include <filems/write/strategies/VectorialWriteStrategy.h>
6 
7 #include <memory>
8 #include <vector>
9 
10 
11 namespace helios { namespace filems{
12 
13 using std::make_shared;
14 using std::vector;
15 
28  public SimpleSyncFileWriter<
29  vector<Measurement> const &,
30  glm::dvec3 const &
31  >
32 {
33 protected:
34  // *** ATTRIBUTES *** //
35  // ******************** //
43 
44 public:
45  // *** CONSTRUCTION / DESTRUCTION *** //
46  // ************************************ //
52  const std::string& path,
53  std::ios_base::openmode om = std::ios_base::app
54  ) :
56  vector<Measurement> const&,
57  glm::dvec3 const&
58  >(path, om),
59  dmws(this->ofs)
60  {
61  this->writeStrategy = make_shared<VectorialWriteStrategy<
63  glm::dvec3 const &
64  >>(dmws);
65  }
66  virtual ~SimpleVectorialSyncFileMeasurementWriter() = default;
67 };
68 
69 }}
Class representing a measurement.
Definition: Measurement.h:13
Concrete class specializing WriteStrategy to directly write measurements to a file.
Definition: DirectMeasurementWriteStrategy.h:24
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 measurements directly to a file...
Definition: SimpleVectorialSyncFileMeasurementWriter.h:32
SimpleVectorialSyncFileMeasurementWriter(const std::string &path, std::ios_base::openmode om=std::ios_base::app)
Simple synchronous file measurement vector writer constructor.
Definition: SimpleVectorialSyncFileMeasurementWriter.h:51
DirectMeasurementWriteStrategy dmws
The measurement write strategy that is wrapped by the main write strategy in a vectorial fashion ( fi...
Definition: SimpleVectorialSyncFileMeasurementWriter.h:42
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