ADTF
Loading...
Searching...
No Matches
data_triggered_filter.h
Go to the documentation of this file.
1
7#pragma once
8#include "triggered_filter.h"
9
11
12namespace adtf
13{
14namespace filter
15{
16namespace ant
17{
18
29template<typename TriggerFunctionImpl, typename InPinListOfTriggers>
30class data_triggered_filter : public triggered_filter < TriggerFunctionImpl >
31{
32protected:
34 typedef triggered_filter < TriggerFunctionImpl > base_type;
35
36public:
42 ADTF3_DEPRECATED("Class 'data_triggered_filter' is deprecated, as well as macro 'ADTF_DATA_TRIGGERED_FILTER'."
43 "Use class filter_with_trigger_function or macros 'ADTF_TRIGGER_FUNCTION_FILTER' / 'ADTF_TRIGGER_FUNCTION_FILTER_PLUGIN' instead.")
45 {
46 }
47
52
53 tResult CreateDefaultTrigger(const char* strFunctionName) override
54 {
55 adtf_util::cStringList strPinList = adtf_util::cStringList(InPinListOfTriggers::GetPinTriggerList());
56 for (adtf_util::cStringList::iterator it = strPinList.begin();
57 it != strPinList.end();
58 it++)
59 {
60 (*it).Trim();
61 RETURN_IF_FAILED(base_type::ConfigureDataInTrigger(strFunctionName, *it));
62 }
64 }
65};
66
67} //namespace ant
68
69namespace detail
70{
71
72template<typename FilterClass>
73tResult pin_trigger(FilterClass& oFilter, const std::vector<util::cString>& oTriggerPins)
74{
75 for (util::cString strTriggerPin: oTriggerPins)
76 {
77 strTriggerPin.Trim();
78 RETURN_IF_FAILED(oFilter.ConfigureDataInTrigger(oFilter.GetTriggerFunctionName(), strTriggerPin));
79 }
81}
82
83}
84
85namespace devil
86{
87
88inline std::function<tResult(cFilterWithTriggerFunction&)> pin_trigger(std::vector<util::cString> oTriggerPins)
89{
90 return std::bind(detail::pin_trigger<cFilterWithTriggerFunction>, std::placeholders::_1, oTriggerPins);
91}
92
93} //namespace devil
94
95namespace hollow
96{
97
98inline std::function<tResult(cFilterWithTriggerFunction&)> pin_trigger(std::vector<util::cString> oTriggerPins)
99{
100 return std::bind(detail::pin_trigger<cFilterWithTriggerFunction>, std::placeholders::_1, oTriggerPins);
101}
102
103} //namespace devil
104
106using hollow::pin_trigger;
107
108} //namespace filter
109} //namespace adtf
110
118#define ADTF_DATA_TRIGGERED_PIN_LIST(_triggerlistclass_, _listcommaseparated_) \
119struct _triggerlistclass_ \
120{ \
121 static adtf_util::cStringList GetPinTriggerList() \
122 { \
123 return adtf_util::cStringList(_listcommaseparated_); \
124 } \
125}
126
141#define ADTF_DATA_TRIGGERED_FILTER_NAME(_class_identifier_, \
142 _class_name_, \
143 _datatriggerfilterclass_, \
144 _triggerfunction_, \
145 _triggerlistclass_, \
146 ...) \
147class _datatriggerfilterclass_ : public adtf::filter::data_triggered_filter<_triggerfunction_, _triggerlistclass_> \
148{ \
149 public:\
150 ADTF_CLASS_ID_NAME(_datatriggerfilterclass_, _class_identifier_, _class_name_); \
151 __VA_ARGS__;\
152 public: \
153 _datatriggerfilterclass_() = default; \
154 virtual ~_datatriggerfilterclass_() = default; \
155}
156
170#define ADTF_DATA_TRIGGERED_FILTER(_class_identifier_, \
171 _datatriggerfilterclass_, \
172 _triggerfunction_, \
173 _triggerlistclass_)\
174 ADTF_DATA_TRIGGERED_FILTER_NAME(_class_identifier_, \
175 _class_identifier_, \
176 _datatriggerfilterclass_, \
177 _triggerfunction_, \
178 _triggerlistclass_)
179
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
#define RETURN_NOERROR
Return status ERR_NOERROR, which requires the calling function's return type to be tResult.
Definition result.h:29
tResult ConfigureDataInTrigger(const char *strRunnerName, const char *strPinName)
Definition data_triggered_filter.h:31
triggered_filter< TriggerFunctionImpl > base_type
base type definition
Definition data_triggered_filter.h:34
~data_triggered_filter()
DTOR.
Definition data_triggered_filter.h:49
ADTF3_DEPRECATED("Class 'data_triggered_filter' is deprecated, as well as macro 'ADTF_DATA_TRIGGERED_FILTER'." "Use class filter_with_trigger_function or macros 'ADTF_TRIGGER_FUNCTION_FILTER' / 'ADTF_TRIGGER_FUNCTION_FILTER_PLUGIN' instead.") data_triggered_filter()
Definition data_triggered_filter.h:42
Definition triggered_filter.h:90
Definition triggered_filter.h:270
Namespace for all functionality of the ADTF Filter SDK provided since v3.0.
Definition filter.h:26
Namespace for all functionality of the ADTF Filter SDK provided since v3.3.
Definition data_triggered_filter.h:86
Namespace for all functionality of the ADTF Filter SDK provided since v3.7.
Definition data_triggered_filter.h:96
Namespace for the ADTF Filter SDK.
Definition configurable_runner.h:18
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14