Helios++
Helios software for LiDAR simulations
FullWaveformYielder.h
1 #pragma once
2 
3 #include <filems/facade/FMSWriteFacade.h>
4 #include <util/WriteYielder.h>
5 #include <scanner/detector/FullWaveform.h>
6 
7 #include <cstdlib>
8 #include <mutex>
9 #include <vector>
10 
12 
13 using std::size_t;
14 using std::vector;
15 
23 class FullWaveformYielder : public WriteYielder<FullWaveform>{
24 protected:
25  // *** USING *** //
26  // *************** //
28 
29 public:
30  // *** CONSTRUCTION / DESTRUCTION *** //
31  // ************************************ //
39  size_t bufferSize=256
40  ) :
42  {}
43  virtual ~FullWaveformYielder() = default;
44 
45  // *** YIELD METHODS *** //
46  // *********************** //
53  void digest(vector<FullWaveform> &copy) override {
55  }
56 
57 };
Yield a set of full waveforms from single full waveform data so it is written when buffer size has be...
Definition: FullWaveformYielder.h:23
void digest(vector< FullWaveform > &copy) override
Write the temporal copy of the full waveforms through the write facade of the filems.
Definition: FullWaveformYielder.h:53
FullWaveformYielder(FMSWriteFacade &write, size_t bufferSize=256)
Default constructor for full waveform yielder.
Definition: FullWaveformYielder.h:37
Class representing a full waveform.
Definition: FullWaveform.h:12
Abstract class representing a write yielder. It is, a yielder which can use the FMSWriteFacade to wri...
Definition: WriteYielder.h:17
FMSWriteFacade & write
The facade for writing operations.
Definition: WriteYielder.h:25
std::size_t bufferSize
The number of elements that can be buffered before forcing the yield operation.
Definition: Yielder.h:31
The facade for FMS writing.
Definition: FMSWriteFacade.h:29
void writeFullWaveformsUnsafe(vector< FullWaveform > const &fullWaveforms) const
Write the full waveform without validations (it is faster than its non unsafe counterpart)
Definition: FMSWriteFacade.h:283