Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
ThumbnailListGenerator.h
1#pragma once
2#include "Module.h"
3#include "declarative/PropertyMacros.h"
4
6{
7public:
8 // Default constructor for declarative pipeline
12
13 ThumbnailListGeneratorProps(int _thumbnailWidth, int _thumbnailHeight, std::string _fileToStore) : ModuleProps()
14 {
15 thumbnailWidth = _thumbnailWidth;
16 thumbnailHeight = _thumbnailHeight;
17 fileToStore = _fileToStore;
18 }
19
22 std::string fileToStore;
23
25 {
26 return ModuleProps::getSerializeSize() + sizeof(int) * 2 + sizeof(fileToStore);
27 }
28
29 // ============================================================
30 // Property Binding for Declarative Pipeline
31 // ============================================================
32 template<typename PropsT>
33 static void applyProperties(
34 PropsT& props,
35 const std::map<std::string, apra::ScalarPropertyValue>& values,
36 std::vector<std::string>& missingRequired
37 ) {
38 apra::applyProp(props.thumbnailWidth, "thumbnailWidth", values, false, missingRequired);
39 apra::applyProp(props.thumbnailHeight, "thumbnailHeight", values, false, missingRequired);
40 apra::applyProp(props.fileToStore, "fileToStore", values, true, missingRequired);
41 }
42
43 apra::ScalarPropertyValue getProperty(const std::string& propName) const {
44 if (propName == "thumbnailWidth") return static_cast<int64_t>(thumbnailWidth);
45 if (propName == "thumbnailHeight") return static_cast<int64_t>(thumbnailHeight);
46 if (propName == "fileToStore") return fileToStore;
47 throw std::runtime_error("Unknown property: " + propName);
48 }
49
50 bool setProperty(const std::string& propName, const apra::ScalarPropertyValue& value) {
51 return false; // All properties are static
52 }
53
54 static std::vector<std::string> dynamicPropertyNames() {
55 return {};
56 }
57
58private:
60
61 template <class Archive>
62 void serialize(Archive &ar, const unsigned int version)
63 {
64 ar &boost::serialization::base_object<ModuleProps>(*this);
67 ar &fileToStore;
68 }
69};
71{
72
73public:
76 bool init();
77 bool term();
80
81protected:
82 bool process(frame_container &frames);
83 bool validateInputPins();
84 // bool processSOS(frame_sp &frame);
85 // bool shouldTriggerSOS();
86 bool handlePropsChange(frame_sp &frame);
87
88private:
89 class Detail;
90 boost::shared_ptr<Detail> mDetail;
91};
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151
Definition ThumbnailListGenerator.h:6
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition ThumbnailListGenerator.h:33
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition ThumbnailListGenerator.h:43
void serialize(Archive &ar, const unsigned int version)
Definition ThumbnailListGenerator.h:62
ThumbnailListGeneratorProps()
Definition ThumbnailListGenerator.h:9
ThumbnailListGeneratorProps(int _thumbnailWidth, int _thumbnailHeight, std::string _fileToStore)
Definition ThumbnailListGenerator.h:13
int thumbnailHeight
Definition ThumbnailListGenerator.h:21
size_t getSerializeSize()
Definition ThumbnailListGenerator.h:24
std::string fileToStore
Definition ThumbnailListGenerator.h:22
friend class boost::serialization::access
Definition ThumbnailListGenerator.h:59
int thumbnailWidth
Definition ThumbnailListGenerator.h:20
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition ThumbnailListGenerator.h:50
static std::vector< std::string > dynamicPropertyNames()
Definition ThumbnailListGenerator.h:54
Definition ThumbnailListGenerator.cpp:28
Definition ThumbnailListGenerator.h:71
ThumbnailListGenerator(ThumbnailListGeneratorProps _props)
Definition ThumbnailListGenerator.cpp:63
boost::shared_ptr< Detail > mDetail
Definition ThumbnailListGenerator.h:90
bool init()
Definition ThumbnailListGenerator.cpp:83
bool validateInputPins()
Definition ThumbnailListGenerator.cpp:70
ThumbnailListGeneratorProps getProps()
Definition ThumbnailListGenerator.cpp:201
void setProps(ThumbnailListGeneratorProps &props)
Definition ThumbnailListGenerator.cpp:196
bool handlePropsChange(frame_sp &frame)
Definition ThumbnailListGenerator.cpp:207
bool term()
Definition ThumbnailListGenerator.cpp:92
virtual ~ThumbnailListGenerator()
Definition ThumbnailListGenerator.cpp:68
bool process(frame_container &frames)
Definition ThumbnailListGenerator.cpp:97
void applyProp(T &member, const char *propName, const std::map< std::string, ScalarPropertyValue > &values, bool isRequired, std::vector< std::string > &missingRequired)
Definition PropertyMacros.h:36
std::variant< int64_t, double, bool, std::string > ScalarPropertyValue
Definition ModuleRegistry.h:30