Skip to content

Commit 30c25cd

Browse files
authored
[QC-953] mergers can receive labels through config (#12354)
1 parent 3f3e174 commit 30c25cd

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

Framework/Core/include/Framework/DataProcessorLabel.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ struct DataProcessorLabel {
2323
{
2424
return value == rhs.value;
2525
}
26+
27+
bool operator<(const DataProcessorLabel& rhs) const
28+
{
29+
return value < rhs.value;
30+
}
31+
32+
bool operator>(const DataProcessorLabel& rhs) const
33+
{
34+
return value > rhs.value;
35+
}
2636
};
2737
} // namespace o2::framework
2838
#endif // O2_FRAMEWORK_DATAPROCESSORLABEL_H_

Utilities/Mergers/include/Mergers/MergerConfig.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <string>
2121
#include <vector>
2222
#include <variant>
23+
#include "Framework/DataProcessorLabel.h"
2324

2425
namespace o2::mergers
2526
{
@@ -95,7 +96,7 @@ struct MergerConfig {
9596
std::string monitoringUrl = "infologger:///debug?qc";
9697
std::string detectorName = "TST";
9798
ConfigEntry<ParallelismType> parallelismType = {ParallelismType::SplitInputs};
98-
bool expendable = false;
99+
std::vector<o2::framework::DataProcessorLabel> labels;
99100
};
100101

101102
} // namespace o2::mergers

Utilities/Mergers/src/MergerBuilder.cxx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,9 @@ framework::DataProcessorSpec MergerBuilder::buildSpec()
117117

118118
merger.inputs.push_back({"timer-publish", "TMR", mergerDataDescription(mName), mergerSubSpec(mLayer, mId), framework::Lifetime::Timer, timerSpecs(timers)});
119119
merger.labels.push_back(mergerLabel());
120-
if (mConfig.expendable) {
121-
framework::DataProcessorLabel expendableLabel = {"expendable"};
122-
merger.labels.emplace_back(expendableLabel);
123-
}
120+
merger.labels.insert(merger.labels.end(), mConfig.labels.begin(), mConfig.labels.end());
121+
std::sort(merger.labels.begin(), merger.labels.end());
122+
merger.labels.erase(std::unique(merger.labels.begin(), merger.labels.end()), merger.labels.end());
124123
merger.maxInputTimeslices = mTimePipeline;
125124

126125
return std::move(merger);

0 commit comments

Comments
 (0)