ADTF
Loading...
Searching...
No Matches
thread_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, bool CYCLIC_THREAD=true>
30class thread_triggered_filter : public triggered_filter < TriggerFunctionImpl >
31{
32
33protected:
35 typedef triggered_filter < TriggerFunctionImpl > base_type;
36
37public:
43 ADTF3_DEPRECATED("Class 'thread_triggered_filter' is deprecated, as well as macro 'ADTF_THREAD_TRIGGERED_FILTER'."
44 "Use class 'filter_with_trigger_function' or macros 'ADTF_TRIGGER_FUNCTION_FILTER' / 'ADTF_TRIGGER_FUNCTION_FILTER_PLUGIN' instead.")
46 {
47 }
48
53
54protected:
55 tResult CreateDefaultTrigger(const char* strFunctionName) override
56 {
57 using namespace adtf::base;
58 bool bCyclic = CYCLIC_THREAD;
59 RETURN_IF_FAILED(base_type::ConfigureThreadTrigger(strFunctionName, bCyclic));
61 }
62
63};
64
65} //namespace ant
66
67namespace detail
68{
69
70template<typename FilterClass>
71tResult thread_trigger(FilterClass& oFilter, bool bCyclic)
72{
73 return oFilter.ConfigureThreadTrigger(oFilter.GetTriggerFunctionName(),
74 bCyclic);
75}
76
77}
78
79namespace devil
80{
81
82inline std::function<tResult(cFilterWithTriggerFunction&)> thread_trigger(bool bCyclic)
83{
84 return std::bind(detail::thread_trigger<cFilterWithTriggerFunction>, std::placeholders::_1, bCyclic);
85}
86
87} //namespace devil
88
89namespace hollow
90{
91
92inline std::function<tResult(cFilterWithTriggerFunction&)> thread_trigger(bool bCyclic)
93{
94 return std::bind(detail::thread_trigger<cFilterWithTriggerFunction>, std::placeholders::_1, bCyclic);
95}
96
97} //namespace devil
98
99
101using hollow::thread_trigger;
102
103} //namespace filter
104} //namespace adtf
105
119#define ADTF_THREAD_TRIGGERED_FILTER_NAME(_class_identifier_, \
120 _class_name_, \
121 _threadtriggerfilterclass_,\
122 _triggerfunction_, \
123 _thread_cyclic_,\
124 ...) \
125 ADTF_TRIGGERED_FILTER_NAME(_class_identifier_,\
126 _class_name_,\
127 _threadtriggerfilterclass_,\
128 _triggerfunction_,\
129 adtf::filter::thread_trigger(_thread_cyclic_))
130
143#define ADTF_THREAD_TRIGGERED_FILTER(_class_identifier_, \
144 _threadtriggerfilterclass_,\
145 _triggerfunction_, \
146 _thread_cyclic_) \
147 ADTF_THREAD_TRIGGERED_FILTER_NAME(_class_identifier_,\
148 _class_identifier_,\
149 _threadtriggerfilterclass_,\
150 _triggerfunction_,\
151 _thread_cyclic_)
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 ConfigureThreadTrigger(const char *strRunnerName, bool bCallCyclic)
Definition thread_triggered_filter.h:31
triggered_filter< TriggerFunctionImpl > base_type
base type of thread_triggered_filter
Definition thread_triggered_filter.h:35
~thread_triggered_filter()
DTOR.
Definition thread_triggered_filter.h:50
ADTF3_DEPRECATED("Class 'thread_triggered_filter' is deprecated, as well as macro 'ADTF_THREAD_TRIGGERED_FILTER'." "Use class 'filter_with_trigger_function' or macros 'ADTF_TRIGGER_FUNCTION_FILTER' / 'ADTF_TRIGGER_FUNCTION_FILTER_PLUGIN' instead.") thread_triggered_filter()
Definition thread_triggered_filter.h:43
Definition triggered_filter.h:90
Definition triggered_filter.h:270
Namespace for the ADTF Base SDK.
Definition adtf_base_type_traits.h:13
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