ADTF
Loading...
Searching...
No Matches
time_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, tTimeStamp DEFAULT_PERIOD >
30class time_triggered_filter : public triggered_filter < TriggerFunctionImpl >
31{
32
33protected:
34 typedef triggered_filter < TriggerFunctionImpl > base_type;
35
36public:
42 ADTF3_DEPRECATED("Class 'time_triggered_filter' is deprecated, as well as macro 'ADTF_TIME_TRIGGERED_FILTER'."
43 "Use class 'filter_with_trigger_function' or macros 'ADTF_TRIGGER_FUNCTION_FILTER' / 'ADTF_TRIGGER_FUNCTION_FILTER_PLUGIN' instead.")
44 time_triggered_filter() : base_type()
45 {
46 }
47
52
53protected:
54 tResult CreateDefaultTrigger(const char* strFunctionName) override
55 {
56 using namespace adtf::base;
57 tTimeStamp tmCurrentPeriod = DEFAULT_PERIOD;
58 RETURN_IF_FAILED(base_type::ConfigureTimerTrigger(strFunctionName, tmCurrentPeriod));
60 }
61};
62
63} //namespace ant
64
65namespace detail
66{
67
68template<typename FilterClass>
69tResult timer_trigger(FilterClass& oFilter, tTimeStamp tmDefaultInterval)
70{
71 return oFilter.ConfigureTimerTrigger(oFilter.GetTriggerFunctionName(),
72 tmDefaultInterval);
73}
74
75}
76
77namespace devil
78{
79
80inline std::function<tResult(cFilterWithTriggerFunction&)> timer_trigger(tTimeStamp tmDefaultInterval)
81{
82 return std::bind(detail::timer_trigger<cFilterWithTriggerFunction>, std::placeholders::_1, tmDefaultInterval);
83}
84
85} //namespace devil
86
87namespace hollow
88{
89
90inline std::function<tResult(cFilterWithTriggerFunction&)> timer_trigger(tTimeStamp tmDefaultInterval)
91{
92 return std::bind(detail::timer_trigger<cFilterWithTriggerFunction>, std::placeholders::_1, tmDefaultInterval);
93}
94
95} //namespace devil
96
98using hollow::timer_trigger;
99
112#define ADTF_TIME_TRIGGERED_FILTER_NAME(_class_identifier_,\
113 _class_name_,\
114 _timetriggerfilterclass_,\
115 _triggerfunction_,\
116 _time_period_micro_sec_,\
117 ...) \
118 ADTF_TRIGGER_FUNCTION_FILTER(_class_identifier_,\
119 _class_name_,\
120 _timetriggerfilterclass_,\
121 _triggerfunction_,\
122 adtf::filter::timer_trigger(_time_period_micro_sec_),\
123 __VA_ARGS__)
124
136#define ADTF_TIME_TRIGGERED_FILTER(_class_identifier_,\
137 _timetriggerfilterclass_,\
138 _triggerfunction_,\
139 _time_period_micro_sec_) \
140 ADTF_TIME_TRIGGERED_FILTER_NAME(_class_identifier_,\
141 _class_identifier_,\
142 _timetriggerfilterclass_,\
143 _triggerfunction_,\
144 _time_period_micro_sec_)
145
146} //namespace filter
147} //namespace adtf
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 ConfigureTimerTrigger(const char *strRunnerName, tTimeStamp tmPeriod)
Definition time_triggered_filter.h:31
~time_triggered_filter()
DTOR.
Definition time_triggered_filter.h:49
ADTF3_DEPRECATED("Class 'time_triggered_filter' is deprecated, as well as macro 'ADTF_TIME_TRIGGERED_FILTER'." "Use class 'filter_with_trigger_function' or macros 'ADTF_TRIGGER_FUNCTION_FILTER' / 'ADTF_TRIGGER_FUNCTION_FILTER_PLUGIN' instead.") time_triggered_filter()
Definition time_triggered_filter.h:42
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