ifm3d
organizer.h
1 /*
2  * Copyright 2022-present ifm electronic, gmbh
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef IFM3D_FG_ORGANIZER_H
7 #define IFM3D_FG_ORGANIZER_H
8 
9 #include <cstdint>
10 #include <vector>
11 #include <set>
12 #include <ifm3d/fg/buffer.h>
13 #include <ifm3d/fg/frame.h>
14 #include <ifm3d/fg/module_frame_grabber.h>
15 
16 namespace ifm3d
17 {
21  class IFM3D_EXPORT Organizer
22  {
23  public:
24  struct Result
25  {
26  std::map<buffer_id, BufferList> images;
27  std::vector<ifm3d::TimePointT> timestamps;
28  uint32_t frame_count;
29  };
30 
31  virtual ~Organizer() {}
32 
33  virtual Result Organize(const std::vector<uint8_t>& data,
34  const std::set<buffer_id>& requestedImages,
35  const bool masking) = 0;
36  }; // end: class Organizer
37 
41 } // end: namespace ifm3d
42 
43 #endif // IFM3D_FG_ORGANIZER_H
ifm3d::Organizer
Organizer Interface for device data.
Definition: organizer.h:21
ifm3d::Organizer::Result
Definition: organizer.h:24