37{
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 if (datatype.find("PDSStreamFrame") != std::string::npos) {
75
76 auto elink_model = std::make_unique<ElinkModel<fdreadoutlibs::types::DAPHNEStreamSuperChunkTypeAdapter>>();
77 elink_model->set_sink_config(conf);
78 auto& parser = elink_model->get_parser();
79 auto& cb = elink_model->m_sink_callback;
80 parser.process_chunk_func = parsers::fixsizedChunkInto<fdreadoutlibs::types::DAPHNEStreamSuperChunkTypeAdapter>(cb);
81 return elink_model;
82
83 } else if (datatype.find("PDSFrame") != std::string::npos) {
84
85 auto elink_model = std::make_unique<ElinkModel<fdreadoutlibs::types::DAPHNESuperChunkTypeAdapter>>();
86 elink_model->set_sink_config(conf);
87 auto& parser = elink_model->get_parser();
88 auto& cb = elink_model->m_sink_callback;
89 parser.process_chunk_func = parsers::fixsizedChunkInto<fdreadoutlibs::types::DAPHNESuperChunkTypeAdapter>(cb);
90 return elink_model;
91
92
93 } else if (datatype.find("varsize") != std::string::npos) {
94
95 auto elink_model = std::make_unique<ElinkModel<fdreadoutlibs::types::VariableSizePayloadTypeAdapter>>();
96 elink_model->set_sink_config(conf);
97 auto& parser = elink_model->get_parser();
98 auto& cb = elink_model->m_sink_callback;
99 parser.process_chunk_func = parsers::varsizedChunkIntoWrapper(cb);
100 parser.process_shortchunk_func = parsers::varsizedShortchunkIntoWrapper(cb);
101 return elink_model;
102 }
103
104 return nullptr;
105}
const std::string & get_data_type() const
Get "data_type" attribute value. Name of the output data type. Should be defined via a call to DUNE_D...