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