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;
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;
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;
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...
std::function< void(const felix::packetformat::chunk &chunk)> varsizedChunkIntoWrapper(std::shared_ptr< std::function< void(fdreadoutlibs::types::VariableSizePayloadTypeAdapter &&)> > &cb, std::chrono::milliseconds timeout=std::chrono::milliseconds(100))
std::function< void(const felix::packetformat::chunk &chunk)> fixsizedChunkInto(std::shared_ptr< std::function< void(TargetStruct &&)> > &cb, std::chrono::milliseconds timeout=std::chrono::milliseconds(100))
std::function< void(const felix::packetformat::shortchunk &shortchunk)> varsizedShortchunkIntoWrapper(std::shared_ptr< std::function< void(fdreadoutlibs::types::VariableSizePayloadTypeAdapter &&)> > &cb, std::chrono::milliseconds timeout=std::chrono::milliseconds(100))