ADTF
Loading...
Searching...
No Matches
triggerfunction_base.h
Go to the documentation of this file.
1
7#pragma once
8#include "filter.h"
9
10#include <adtf_utils.h>
11#include <adtfbase/runnable.h>
16
17#include <functional>
18#include <memory>
19#include <string>
20#include <vector>
21
22namespace adtf
23{
24namespace filter
25{
26namespace ant
27{
36 class cTriggerFunctionBase : public base::ant::runnable<base::ant::IRunnable::RUN_TRIGGER>,
38 {
39
40 protected:
42 adtf_util::cString m_strName;
43 adtf_util::cString m_strProfilingFullName;
44 adtf_util::cString m_strProfilingInputs;
45 adtf_util::cString m_strProfilingProcess;
46 adtf_util::cString m_strProfilingOutputs;
47 adtf_util::cString m_strProfilingStartedEvent;
48 adtf_util::cString m_strProfilingFinishedEvent;
49
50 public:
55 cTriggerFunctionBase(const char* strName);
56
57 virtual tResult GetName(base::IString&& strName) const;
58 void SetName(const char* strName);
59 virtual tResult SetDefaultProperties(base::ant::IConfiguration& /* pProperties */);
60 virtual tResult Configure();
61 virtual tResult SetFilter(cFilter& oFilter);
62 virtual tResult ConnectReadersAndWriters(cFilter& /* oFilter */);
63 virtual void SetParentFullName(const adtf::util::cString& strParentFullName);
64
65 public: //implement the Trigger
66
71 tResult RunTrigger(tTimeStamp tmTimeofActivation);
72
73
74 public:
77 virtual tResult ProcessInputs(tTimeStamp /* tmTime */);
78
80 virtual tResult Process(tTimeStamp tmTime) = 0;
81
91 virtual tResult ProcessOutputs(tTimeStamp /* tmTime */);
92 };
93
94
95 class cTriggerFunction : public cTriggerFunctionBase
96 {
97
98 protected:
99 std::vector<streaming::ant::cSampleReader*> m_vecOfReaders;
100 std::vector<streaming::ant::cSampleWriter*> m_vecOfWriters;
101
102 public:
103 cTriggerFunction();
104 cTriggerFunction(const char* strName);
105
106 tResult SetDefaultProperties(base::ant::IConfiguration& oFilterConfig);
107
108 tResult ConnectReadersAndWriters(cFilter& oFilter) override;
109
110 tResult ProcessOutputs(tTimeStamp /* tmTime */) override;
111
113 tResult Register(adtf::streaming::ant::cSampleReader& oReader, const char* strName, const char* strDDLStruct);
114 tResult Register(adtf::streaming::ant::cSampleReader& oReader, const char* strName, const ucom::ant::iobject_ptr<const adtf::streaming::IStreamType>& poStreamType);
115 tResult Register(adtf::streaming::ant::cSampleReader& oReader, const char* strName, const adtf::streaming::IStreamType& oStreamType);
116
118 tResult Register(adtf::streaming::ant::cSampleWriter& oWriter, const char* strName, const char* strDDLStruct);
119 tResult Register(adtf::streaming::ant::cSampleWriter& oWriter, const char* strName, const ucom::ant::iobject_ptr<const adtf::streaming::IStreamType>& poStreamType);
120 tResult Register(adtf::streaming::ant::cSampleWriter& oWriter, const char* strName, const streaming::IStreamType& oStreamType);
121
122 };
123
124
125
126} //namespace ant
127
128namespace flash
129{
130
131class cTriggerFunction: public base::ant::configuration<>,
133{
134 public:
135 cTriggerFunction();
136 cTriggerFunction(const char* strName);
137 ~cTriggerFunction() override;
138
139 void SetName(const char* strName);
140 tResult GetName(base::ant::IString&& strName) const;
141
142 tResult Register(streaming::flash::ISampleReader& oReader);
143 tResult Register(streaming::flash::ISampleReader& oReader, const char* strName, const char* strDDLStruct);
144 tResult Register(streaming::flash::ISampleReader& oReader, const char* strName, const ucom::ant::iobject_ptr<const adtf::streaming::ant::IStreamType>& poStreamType);
145 tResult Register(streaming::flash::ISampleReader& oReader, const char* strName, const adtf::streaming::ant::IStreamType& oStreamType);
146
147 tResult Register(streaming::flash::ISampleWriter& oWriter);
148 tResult Register(streaming::flash::ISampleWriter& oWriter, const char* strName, const char* strDDLStruct);
149 tResult Register(streaming::flash::ISampleWriter& oWriter, const char* strName, const ucom::ant::iobject_ptr<const adtf::streaming::ant::IStreamType>& poStreamType);
150 tResult Register(streaming::flash::ISampleWriter& oWriter, const char* strName, const streaming::ant::IStreamType& oStreamType);
151
152 virtual tResult SetFilter(cFilter& oFilter);
153 virtual tResult ConnectReadersAndWriters(cFilter& oFilter);
154
155 virtual tResult Configure();
156
157 virtual tResult ProcessInputs(tTimeStamp tmTime);
158 virtual tResult Process(tTimeStamp tmTime);
159 virtual tResult ProcessOutputs(tTimeStamp tmTime);
160
161 virtual tResult ProcessInputs(base::flash::tNanoSeconds tmTime);
162 virtual tResult Process(base::flash::tNanoSeconds tmTime);
163 virtual tResult ProcessOutputs(base::flash::tNanoSeconds tmTime);
164
165 public:
167 base::ant::IRunnable::tActivationType ui32ActivationType,
168 const void* pvUserData,
169 size_t nUserDataSize) override;
170
171 private:
172 class cImplementation;
173 std::unique_ptr<cImplementation> m_pImplementation;
174};
175
176}
177
178namespace hollow
179{
180
181class cTriggerFunction: public base::ant::configuration<>,
183{
184public:
185 cTriggerFunction();
186 cTriggerFunction(const char* strName);
187 ~cTriggerFunction() override;
188
189 void SetName(const char* strName);
190 tResult GetName(base::ant::IString&& strName) const;
191
192 tResult Register(streaming::flash::ISampleReader& oReader);
193 tResult Register(streaming::flash::ISampleReader& oReader, const char* strName, const char* strDDLStruct);
194 tResult Register(streaming::flash::ISampleReader& oReader, const char* strName, const ucom::ant::iobject_ptr<const adtf::streaming::ant::IStreamType>& poStreamType);
195 tResult Register(streaming::flash::ISampleReader& oReader, const char* strName, const adtf::streaming::ant::IStreamType& oStreamType);
196
197 tResult Register(streaming::flash::ISampleWriter& oWriter);
198 tResult Register(streaming::flash::ISampleWriter& oWriter, const char* strName, const char* strDDLStruct);
199 tResult Register(streaming::flash::ISampleWriter& oWriter, const char* strName, const ucom::ant::iobject_ptr<const adtf::streaming::ant::IStreamType>& poStreamType);
200 tResult Register(streaming::flash::ISampleWriter& oWriter, const char* strName, const streaming::ant::IStreamType& oStreamType);
201
202 virtual tResult SetFilter(cFilter& oFilter);
203 virtual tResult ConnectReadersAndWriters(cFilter& oFilter);
204
205 virtual tResult Configure();
206
207 virtual tResult ProcessInputs(tTimeStamp tmTime);
208 virtual tResult Process(tTimeStamp tmTime);
209 virtual tResult ProcessOutputs(tTimeStamp tmTime);
210
211 virtual tResult ProcessInputs(base::flash::tNanoSeconds tmTime);
212 virtual tResult Process(base::flash::tNanoSeconds tmTime);
213 virtual tResult ProcessOutputs(base::flash::tNanoSeconds tmTime);
214
215public:
217 base::ant::IRunnable::tActivationType ui32ActivationType,
218 const void* pvUserData,
219 size_t nUserDataSize) override;
220
221private:
222 class cImplementation;
223 std::unique_ptr<cImplementation> m_pImplementation;
224};
225
226}
227
228
231
232
233} //namespace filter
234} //namespace adtf
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition configuration_intf.h:24
tActivationType
Definition runnable_intf.h:45
Definition string_intf.h:29
Definition configuration.h:221
Definition runnable_intf.h:112
Definition filter.h:108
Definition triggerfunction_base.h:38
virtual tResult Process(tTimeStamp tmTime)=0
this is to implement your functionality and needs to overwrite
virtual tResult ProcessOutputs(tTimeStamp)
virtual tResult ProcessInputs(tTimeStamp)
adtf_util::cString m_strName
Name of the TriggerFunction used to create the IRunner.
Definition triggerfunction_base.h:42
tResult RunTrigger(tTimeStamp tmTimeofActivation)
tResult ProcessOutputs(tTimeStamp) override
Definition filter.h:289
tResult Run(base::flash::tNanoSeconds tmTimeofActivation, base::ant::IRunnable::tActivationType ui32ActivationType, const void *pvUserData, size_t nUserDataSize) override
Definition triggerfunction_base.h:183
tResult Run(base::flash::tNanoSeconds tmTimeofActivation, base::ant::IRunnable::tActivationType ui32ActivationType, const void *pvUserData, size_t nUserDataSize) override
Defines access methods for the interface of a Stream Type.
Definition streamtype_intf.h:96
The default Sample Reader will read the incomung Stream of a IInPin. This sample reader has no intern...
Definition samplereader.h:177
Definition samplewriter.h:34
Definition samplestreamer_intf.h:188
Definition samplestreamer_intf.h:234
Base object pointer to realize binary compatible reference counting in interface methods.
Definition object_ptr_intf.h:112
adtf::base::runnable< DEFAULT_ACTIVATION_TYPE, ANT_INTERFACE, flash::IRunnable, CALLABLE > runnable
Definition runnable.h:231
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.5.
Definition triggered_filter.h:179
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
A timestamp with nanosecond precision.
Definition chrono.h:23