Helios++
Helios software for LiDAR simulations
ZipVectorialSyncFileMeasurementWriter.h
1 #pragma once
2 
3 #include <filems/write/comps/ZipSyncFileWriter.h>
4 #include <filems/write/strategies/ZipMeasurementWriteStrategy.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 ZipSyncFileWriter<
29  vector<Measurement> const &,
30  glm::dvec3 const &
31  >
32 {
33 protected:
34  // *** ATTRIBUTES *** //
35  // ******************** //
43 
44 public:
45  // *** CONSTRUCTION / DESTRUCTION *** //
46  // ************************************ //
52  const string &path,
53  int compressionMode = boost::iostreams::zlib::best_compression
54  ) :
56  vector<Measurement> const&,
57  glm::dvec3 const&
58  >(path, compressionMode),
59  zmws(this->ofs, *(this->oa))
60  {
61  this->writeStrategy = make_shared<VectorialWriteStrategy<
63  glm::dvec3 const &
64  >>(zmws);
65  }
66  virtual ~ZipVectorialSyncFileMeasurementWriter() = default;
67 };
68 
69 }}
Class representing a measurement.
Definition: Measurement.h:13
std::ofstream ofs
Output file stream to be used by the simple synchronous file writer.
Definition: SimpleSyncFileWriter.h:31
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
Like DirectMeasurementWriteStrategy but zipping the output.
Definition: ZipMeasurementWriteStrategy.h:15
Abstract child of SimpleSyncFileWriter which provides support for zipped output.
Definition: ZipSyncFileWriter.h:23
unique_ptr< boost::archive::binary_oarchive > oa
Binary output archive.
Definition: ZipSyncFileWriter.h:39
Concrete class specializing ZipSyncFileWriter to write a vector of measurements to a zip file.
Definition: ZipVectorialSyncFileMeasurementWriter.h:32
ZipVectorialSyncFileMeasurementWriter(const string &path, int compressionMode=boost::iostreams::zlib::best_compression)
ZIP synchronous file measurement vector writer constructor.
Definition: ZipVectorialSyncFileMeasurementWriter.h:51
ZipMeasurementWriteStrategy zmws
The measurement write strategy that is wrapped by the main write strategy in a vectorial fashion ( fi...
Definition: ZipVectorialSyncFileMeasurementWriter.h:42