ADTF
Loading...
Searching...
No Matches
configurable_runner.h
Go to the documentation of this file.
1
7
#pragma once
8
#include <
adtfstreaming3/runner.h
>
9
#include <
adtffiltersdk/trigger_intf.h
>
10
11
#include <map>
12
#include <unordered_set>
13
#include <string>
14
15
namespace
adtf
16
{
17
namespace
filter
18
{
19
namespace
private_implementations
20
{
21
23
// internal configuration interface for the Trigger (Runner)
25
class
IInternalTriggerConfiguration
:
public
ITriggerConfiguration
26
{
27
public
:
28
ADTF_IID
(
IInternalTriggerConfiguration
,
"internal_triggerconfiguration.ant.streaming.adtf.iid"
);
29
30
public
:
31
using
ITriggerConfiguration::GetConfiguration
;
32
virtual
adtf::base::ant::IConfiguration
& GetConfiguration(
tKindOfConfiguration
eKind) = 0;
33
34
virtual
tResult
AppendDataIn(
const
char
* strInPin) = 0;
35
virtual
tResult
AppendDataOut(
const
char
* strOutPin) = 0;
36
virtual
tResult
AddTimerConfig(tTimeStamp tmDefaultPeriod) = 0;
37
virtual
tResult
AddThreadConfig(
bool
bCyclic) = 0;
38
};
39
41
// private implementation of the filter
43
class
cConfigurableRunner :
44
public
adtf::ucom::object
<ITriggerConfiguration, IInternalTriggerConfiguration, streaming::cRunner>
45
{
46
private
:
47
cConfigurableRunner() =
default
;
48
std::map<uint32_t, base::ant::configuration<>> m_mapConfig;
49
util::log::ILogChannel* m_pLogChannel =
nullptr
;
50
51
public
:
52
cConfigurableRunner(
const
char
* strName, util::log::ILogChannel* pLogChannel);
53
cConfigurableRunner(
const
char
* strName,
54
util::log::ILogChannel* pLogChannel,
55
adtf::base::ant::IRunnable
& oRunnable);
56
explicit
cConfigurableRunner(
const
char
* strName,
57
util::log::ILogChannel* pLogChannel,
58
adtf::base::flash::IRunnable
& oRunnable);
59
template
<
typename
CALLABLE>
60
cConfigurableRunner(
const
char
* strName, util::log::ILogChannel* pLogChannel, CALLABLE&& oCallable):
61
cConfigurableRunner(strName, pLogChannel)
62
{
63
SetCallable(std::forward<CALLABLE>(oCallable));
64
}
65
66
~cConfigurableRunner()
override
=
default
;
67
68
const
base::ant::IConfiguration
& GetConfiguration(tKindOfConfiguration eKind)
const override
;
69
base::ant::IConfiguration
& GetConfiguration(tKindOfConfiguration eKind)
override
;
70
71
tResult
AppendDataIn(
const
char
* strInPin)
override
;
72
tResult
AppendDataOut(
const
char
* strOutPin)
override
;
73
tResult
AddTimerConfig(tTimeStamp tmDefaultPeriod)
override
;
74
tResult
AddThreadConfig(
bool
bCyclic)
override
;
75
76
tResult
Run(tTimeStamp tmTimeofActivation,
77
base::ant::IRunnable::tActivationType
ui32ActivationType,
78
const
void
* pvUserData,
79
size_t
nUserDataSize)
override
;
80
tResult
Run(
base::flash::tNanoSeconds
tmTimeofActivation,
81
base::ant::IRunnable::tActivationType
ui32ActivationType,
82
const
void
* pvUserData,
83
size_t
nUserDataSize)
override
;
84
85
private
:
86
template
<
typename
VALUETYPE>
87
tResult
SetProperty(
ITriggerConfiguration::tKindOfConfiguration
eKind,
const
char
* strNameOfValue, VALUETYPE oValue)
88
{
89
ucom::object_ptr<base::IProperties>
pProps;
90
RETURN_IF_FAILED(m_mapConfig[eKind].GetProperties(pProps));
91
return
pProps->SetProperty(
base::property<VALUETYPE>
(strNameOfValue, oValue));
92
}
93
94
template
<
typename
VALUETYPE>
95
VALUETYPE GetProperty(
ITriggerConfiguration::tKindOfConfiguration
eKind,
const
char
* strNameOfValue)
96
{
97
ucom::object_ptr<base::IProperties>
pProps;
98
m_mapConfig[eKind].GetProperties(pProps);
99
base::property<VALUETYPE>
oValue;
100
pProps->GetProperty(strNameOfValue, oValue);
101
return
oValue.GetValueT();
102
}
103
104
void
AddToCommaSepList(
const
char
* strValueToAdd, adtf_util::cString& strListOfValuesCommaSep);
105
};
106
107
}
// namespace private_implementations
108
}
// namespace filter
109
}
// namespace adtf
ADTF_IID
#define ADTF_IID(_interface, _striid)
Definition
adtf_iid.h:19
tResult
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition
result.h:736
adtf::base::ant::IConfiguration
Definition
configuration_intf.h:24
adtf::base::ant::IRunnable
Definition
runnable_intf.h:27
adtf::base::ant::IRunnable::tActivationType
tActivationType
Definition
runnable_intf.h:45
adtf::base::flash::IRunnable
Definition
runnable_intf.h:112
adtf::base::spider::property
Definition
properties_v2.h:283
adtf::filter::ITriggerConfiguration::GetConfiguration
virtual const adtf::base::ant::IConfiguration & GetConfiguration(tKindOfConfiguration eKind) const =0
adtf::filter::ITriggerConfiguration::tKindOfConfiguration
tKindOfConfiguration
The kind of trigger configuration to retrieve with ITriggerConfiguration::GetConfiguration.
Definition
trigger_intf.h:37
adtf::filter::ant::ITriggerConfiguration
Definition
trigger_intf.h:26
adtf::filter::ant::ITriggerConfiguration::tKindOfConfiguration
tKindOfConfiguration
The kind of trigger configuration to retrieve with ITriggerConfiguration::GetConfiguration.
Definition
trigger_intf.h:37
adtf::filter::private_implementations::IInternalTriggerConfiguration
Definition
configurable_runner.h:26
adtf::ucom::ant::object_ptr
Definition
object_ptr.h:384
adtf::ucom::catwo::object
Definition
object.h:397
adtf::filter::private_implementations
Namespace for all internally used functionality implemented..
Definition
configurable_runner.h:20
adtf::filter
Namespace for the ADTF Filter SDK.
Definition
configurable_runner.h:18
adtf
Namespace for all functionality provided by ADTF and its SDKs.
Definition
adtf_client_connector.h:14
runner.h
adtf::base::flash::tNanoSeconds
A timestamp with nanosecond precision.
Definition
chrono.h:23
trigger_intf.h
src
libraries
filtersdk
include
adtffiltersdk
configurable_runner.h
Copyright © CARIAD SE. All rights reserved | Generated on Thu Aug 6 2026 by doxygen 1.13.2 | GIT Commit Hash: 07d2f84367192978b2a55ca6aee7f968758b7220