@@ -35,6 +35,10 @@ void customize(std::vector<ConfigParamSpec>& workflowOptions)
3535 ConfigParamSpec{
3636 " inject-missing-data" , VariantType::Bool, false , {" inject missing data according to dataspec if not found in the input" }});
3737
38+ workflowOptions.push_back (
39+ ConfigParamSpec{
40+ " sporadic-outputs" , VariantType::Bool, false , {" consider all the outputs as sporadic" }});
41+
3842 workflowOptions.push_back (
3943 ConfigParamSpec{
4044 " print-input-sizes" , VariantType::Int, 0 , {" print statistics about sizes per input spec every n TFs" }});
@@ -52,16 +56,18 @@ void customize(std::vector<ConfigParamSpec>& workflowOptions)
5256
5357WorkflowSpec defineDataProcessing (ConfigContext const & config)
5458{
55- std::string processorName = config.options ().get <std::string>(" proxy-name" );
56- std::string outputconfig = config.options ().get <std::string>(" dataspec" );
59+ auto processorName = config.options ().get <std::string>(" proxy-name" );
60+ auto outputconfig = config.options ().get <std::string>(" dataspec" );
5761 bool injectMissingData = config.options ().get <bool >(" inject-missing-data" );
58- unsigned int printSizes = config.options ().get <unsigned int >(" print-input-sizes" );
62+ bool sporadicOutputs = config.options ().get <bool >(" sporadic-outputs" );
63+ auto printSizes = config.options ().get <unsigned int >(" print-input-sizes" );
5964 bool throwOnUnmatched = config.options ().get <bool >(" throwOnUnmatched" );
6065 uint64_t minSHM = std::stoul (config.options ().get <std::string>(" timeframes-shm-limit" ));
6166 std::vector<InputSpec> matchers = select (outputconfig.c_str ());
6267 Outputs readoutProxyOutput;
6368 for (auto const & matcher : matchers) {
6469 readoutProxyOutput.emplace_back (DataSpecUtils::asOutputSpec (matcher));
70+ readoutProxyOutput.back ().lifetime = sporadicOutputs ? Lifetime::Sporadic : Lifetime::Timeframe;
6571 }
6672
6773 // we use the same specs as filters in the dpl adaptor
0 commit comments