17 std::set< std::string > additionalHeader;
19 auto& key = parameter.name.value.value;
20 parameterMap.emplace(key,std::make_unique<Parameter>(¶meter,attributeRegistry));
21 if ( key !=
"name" && key !=
"sender" && key !=
"recipient" ) {
22 additionalHeader.insert(key);
25 for (
auto& key : additionalHeader ) {
26 header.push_back(key);
30 contentMap.emplace(content.key.value.value,std::make_unique<Content>(&content,attributeRegistry));
34template <
typename DataType>
38 for (
auto& key :
header ) {
39 if ( key ==
"name" ) {
40 headerValues.push_back(
name );
42 else if ( key ==
"sender" ) {
46 headerValues.push_back( getHeaderValue(key, attributeRegistry, status, data, globals) );
56template <
typename DataType>
60 for (
auto& key :
header ) {
61 if ( key ==
"name" ) {
62 headerValues.push_back(
name );
64 else if ( key ==
"recipient" ) {
68 headerValues.push_back( getHeaderValue(key, attributeRegistry, status, data, globals) );
78template <
typename DataType>
80 std::optional<BPMNOS::number> value;
82 if ( it !=
parameterMap.end() && it->second->expression ) {
83 value = it->second->expression->execute(status,data,globals);
BPMNOS::Values getRecipientHeader(const AttributeRegistry &attributeRegistry, const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
Returns a vector of values including message name, recipient, sender, and all other header parameters...
std::vector< std::string > header
Set of parameter names always beginning with "sender" and "recipient".
ParameterMap parameterMap
Map allowing to look up parameters by their names.
BPMNOS::Values getSenderHeader(const AttributeRegistry &attributeRegistry, const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
XML::bpmnos::tMessage * element
MessageDefinition(XML::bpmnos::tMessage *message, const AttributeRegistry &attributeRegistry)
BPMNOS::number name
Message name.
std::vector< std::reference_wrapper< tParameter > > parameter
number to_number(const std::string &valueString, const ValueType &type)
Converts a string to a number.
static constexpr size_t Instance