Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Framework/Core/include/Framework/DataSpecViews.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ static auto filter_not_matching(auto const& provided)

static auto filter_matching(auto const& provided)
{
return std::views::filter([&provided](auto const& input){ return std::any_of(provided.begin(), provided.end(), [&input](auto const& output){ return DataSpecUtils::match(input, output); }); });
return std::views::filter([&provided](auto const& input) { return std::any_of(provided.begin(), provided.end(), [&input](auto const& output) { return DataSpecUtils::match(input, output); }); });
}
} // namespace o2::framework::views
//
Expand Down
42 changes: 21 additions & 21 deletions Framework/Core/src/AnalysisSupportHelpers.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,8 @@ void AnalysisSupportHelpers::addMissingOutputsToReader(std::vector<OutputSpec> c
DataProcessorSpec& publisher)
{
requestedInputs |
views::filter_not_matching(providedOutputs) | // filter the inputs that are already provided
std::views::transform([](auto const& req){ // create outputspecs for unmatched inputs
views::filter_not_matching(providedOutputs) | // filter the inputs that are already provided
std::views::transform([](auto const& req) { // create outputspecs for unmatched inputs
return DataSpecUtils::asOutputSpec(req);
}) |
sinks::update_output_list{publisher.outputs}; // append them to the publisher outputs
Expand All @@ -141,21 +141,21 @@ void AnalysisSupportHelpers::addMissingOutputsToSpawner(std::vector<OutputSpec>
{
requestedSpecials |
views::filter_not_matching(providedSpecials) | // filter the inputs that are already provided
std::views::transform([](auto const& req){ // create outputspecs for unmatched inputs
std::views::transform([](auto const& req) { // create outputspecs for unmatched inputs
return DataSpecUtils::asOutputSpec(req);
}) |
sinks::append_to(publisher.outputs); // append them to the publisher outputs
sinks::append_to(publisher.outputs); // append them to the publisher outputs

std::vector<InputSpec> additionalInputs;
for (auto& input : requestedSpecials | views::filter_not_matching(providedSpecials)) {
input.metadata |
std::views::filter([](auto const& param){ // filter config params that are strings starting with "input:"
std::views::filter([](auto const& param) { // filter config params that are strings starting with "input:"
return (param.type == VariantType::String) && (param.name.find("input:") != std::string::npos);
}) |
std::views::transform([](auto const& param){ // parse them into InputSpecs
std::views::transform([](auto const& param) { // parse them into InputSpecs
return DataSpecUtils::fromMetadataString(param.defaultValue.template get<std::string>());
}) |
sinks::update_input_list{additionalInputs}; // store into a temporary
sinks::update_input_list{additionalInputs}; // store into a temporary
}
additionalInputs | sinks::update_input_list{requestedAODs}; // update requestedAODs
additionalInputs | sinks::update_input_list{publisher.inputs}; // update publisher inputs
Expand All @@ -167,31 +167,31 @@ void AnalysisSupportHelpers::addMissingOutputsToBuilder(std::vector<InputSpec> c
DataProcessorSpec& publisher)
{
requestedSpecials |
std::views::transform([](auto const& req){ // create outputspecs for inputs
std::views::transform([](auto const& req) { // create outputspecs for inputs
return DataSpecUtils::asOutputSpec(req);
}) |
sinks::append_to{publisher.outputs}; // append them to the publisher outputs
sinks::append_to{publisher.outputs}; // append them to the publisher outputs

std::vector<InputSpec> additionalInputs;
for (auto const& input : requestedSpecials) {
input.metadata |
std::views::filter([](auto const& param){ // filter config params that are strings starting with "input:"
std::views::filter([](auto const& param) { // filter config params that are strings starting with "input:"
return (param.type == VariantType::String) && (param.name.find("input:") != std::string::npos);
}) |
std::views::transform([](auto const& param){ // parse them into InputSpecs
std::views::transform([](auto const& param) { // parse them into InputSpecs
return DataSpecUtils::fromMetadataString(param.defaultValue.template get<std::string>());
}) |
sinks::update_input_list{additionalInputs}; // store into a temporary
sinks::update_input_list{additionalInputs}; // store into a temporary
}

additionalInputs | sinks::update_input_list(publisher.inputs); // update publisher inputs
// FIXME: until we have a single list of pairs
additionalInputs |
views::partial_match_filter(AODOrigins) |
sinks::update_input_list{requestedAODs}; // update requestedAODs
sinks::update_input_list{requestedAODs}; // update requestedAODs
additionalInputs |
views::partial_match_filter(header::DataOrigin{"DYN"}) |
sinks::update_input_list{requestedDYNs}; // update requestedDYNs
sinks::update_input_list{requestedDYNs}; // update requestedDYNs
}

void AnalysisSupportHelpers::addMissingOutputsToAnalysisCCDBFetcher(
Expand All @@ -202,31 +202,31 @@ void AnalysisSupportHelpers::addMissingOutputsToAnalysisCCDBFetcher(
DataProcessorSpec& publisher)
{
requestedSpecials |
std::views::transform([](auto const& req){ // create outputspecs for inputs
std::views::transform([](auto const& req) { // create outputspecs for inputs
return DataSpecUtils::asOutputSpec(req);
}) |
sinks::append_to{publisher.outputs}; // append them to the publisher outputs
sinks::append_to{publisher.outputs}; // append them to the publisher outputs

std::vector<InputSpec> additionalInputs;
for (auto& input : requestedSpecials) {
input.metadata |
std::views::filter([](auto const& param){ // filter config params that are strings starting with "input:"
std::views::filter([](auto const& param) { // filter config params that are strings starting with "input:"
return (param.type == VariantType::String) && (param.name.find("input:") != std::string::npos);
}) |
std::views::transform([](auto const& param){ // parse them into InputSpecs
std::views::transform([](auto const& param) { // parse them into InputSpecs
return DataSpecUtils::fromMetadataString(param.defaultValue.template get<std::string>());
}) |
sinks::update_input_list{additionalInputs}; // store into a temporary
sinks::update_input_list{additionalInputs}; // store into a temporary
}

additionalInputs | sinks::update_input_list(publisher.inputs); // update publisher inputs
// FIXME: until we have a single list of pairs
additionalInputs |
views::partial_match_filter(AODOrigins) |
sinks::update_input_list{requestedAODs}; // update requestedAODs
sinks::update_input_list{requestedAODs}; // update requestedAODs
additionalInputs |
views::partial_match_filter(header::DataOrigin{"DYN"}) |
sinks::update_input_list{requestedDYNs}; // update requestedDYNs
sinks::update_input_list{requestedDYNs}; // update requestedDYNs
}

// =============================================================================
Expand Down
6 changes: 3 additions & 3 deletions Framework/Core/src/WorkflowHelpers.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,8 @@ void WorkflowHelpers::injectServiceDevices(WorkflowSpec& workflow, ConfigContext
processor.options.push_back(ConfigParamSpec{"end-value-enumeration", VariantType::Int64, -1ll, {"final value for the enumeration"}});
processor.options.push_back(ConfigParamSpec{"step-value-enumeration", VariantType::Int64, 1ll, {"step between one value and the other"}});
}
bool hasTimeframeInputs = std::any_of(processor.inputs.begin(), processor.inputs.end(), [](auto const& input){ return input.lifetime == Lifetime::Timeframe; });
bool hasTimeframeOutputs = std::any_of(processor.outputs.begin(), processor.outputs.end(), [](auto const& output){ return output.lifetime == Lifetime::Timeframe; });
bool hasTimeframeInputs = std::any_of(processor.inputs.begin(), processor.inputs.end(), [](auto const& input) { return input.lifetime == Lifetime::Timeframe; });
bool hasTimeframeOutputs = std::any_of(processor.outputs.begin(), processor.outputs.end(), [](auto const& output) { return output.lifetime == Lifetime::Timeframe; });

// A timeframeSink consumes timeframes without creating new
// timeframe data.
Expand All @@ -280,7 +280,7 @@ void WorkflowHelpers::injectServiceDevices(WorkflowSpec& workflow, ConfigContext
uint32_t hash = runtime_hash(processor.name.c_str());
bool hasMatch = false;
ConcreteDataMatcher summaryMatcher = ConcreteDataMatcher{"DPL", "SUMMARY", static_cast<DataAllocator::SubSpecificationType>(hash)};
auto summaryOutput = std::find_if(processor.outputs.begin(), processor.outputs.end(), [&summaryMatcher](auto const& output){ return DataSpecUtils::match(output, summaryMatcher); });
auto summaryOutput = std::find_if(processor.outputs.begin(), processor.outputs.end(), [&summaryMatcher](auto const& output) { return DataSpecUtils::match(output, summaryMatcher); });
if (summaryOutput != processor.outputs.end()) {
O2_SIGNPOST_EVENT_EMIT(workflow_helpers, sid, "output enumeration", "%{public}s already there in %{public}s",
DataSpecUtils::describe(*summaryOutput).c_str(), processor.name.c_str());
Expand Down