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 <ifm3d/fg/buffer.h>
11 #include <ifm3d/fg/frame.h>
12 #include <ifm3d/fg/module_frame_grabber.h>
13 #include <set>
14 #include <vector>
15 
16 namespace ifm3d
17 {
21  class IFM3D_EXPORT Organizer
22  {
23  public:
24  Organizer() = default;
25  Organizer(const Organizer&) = default;
26  Organizer(Organizer&&) = delete;
27  Organizer& operator=(const Organizer&) = default;
28  Organizer& operator=(Organizer&&) = delete;
29 
30  struct Result
31  {
32  std::map<buffer_id, BufferList> images;
33  std::vector<ifm3d::TimePointT> timestamps;
34  uint32_t frame_count;
35  };
36 
37  virtual ~Organizer() = default;
38 
39  virtual Result Organize(const std::vector<uint8_t>& data,
40  const std::set<buffer_id>& requested_images,
41  bool masking) = 0;
42  }; // end: class Organizer
43 
47 } // end: namespace ifm3d
48 
49 #endif // IFM3D_FG_ORGANIZER_H
ifm3d::Organizer
Organizer Interface for device data.
Definition: organizer.h:21
ifm3d::Organizer::Result
Definition: organizer.h:30