gramods
AnalogsMapper.hh
1 
2 #ifndef GRAMODS_TRACK_ANALOGSMAPPER
3 #define GRAMODS_TRACK_ANALOGSMAPPER
4 
5 #include <gmTrack/AnalogsTracker.hh>
6 
7 #include <gmCore/io_size.hh>
8 
9 #include <gmCore/OFactory.hh>
10 
11 BEGIN_NAMESPACE_GMTRACK;
12 
20  : public AnalogsTracker {
21 
22 public:
23 
30  struct AnalogIndex {
31  static const size_t VERTICAL = 0;
32  static const size_t HORIZONTAL = 1;
33  static const size_t TRIGGER = 2;
34  static const size_t COUNT = 3;
35  };
36 
42  void setAnalogsTracker(std::shared_ptr<AnalogsTracker> bt);
43 
50  void addMapping(gmCore::size2 m);
51 
58  void setVerticalAnalog(int idx);
59 
66  void setHorizontalAnalog(int idx);
67 
74  void setTriggerAnalog(int idx);
75 
81  bool getAnalogs(AnalogsSample &p) override;
82 
88  void traverse(Visitor *visitor) override;
89 
90  GM_OFI_DECLARE;
91 
92 private:
93 
94  std::map<size_t, size_t> mappings;
95  std::shared_ptr<AnalogsTracker> analogsTracker;
96 };
97 
98 END_NAMESPACE_GMTRACK;
99 
100 #endif
Analogs filter that re-maps analog indices to a standard order for application compatibility between ...
Definition: AnalogsMapper.hh:20
The base of AnalogsTrackers.
Definition: AnalogsTracker.hh:18
std::array< size_t, 2 > size2
Array of 2 size_t.
Definition: io_size.hh:9
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
Standard analogs indices, for compatibility.
Definition: AnalogsMapper.hh:30
Definition: AnalogsTracker.hh:24