DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::flxlibs Namespace Reference

Namespaces

namespace  felixcardcontroller
 
namespace  opmon
 
namespace  parsers
 
namespace  stats
 

Classes

class  CardControllerWrapper
 
class  CardWrapper
 
class  DefaultParserImpl
 
class  ElinkConcept
 
class  ElinkModel
 

Functions

std::unique_ptr< ElinkConceptcreateElinkModel (const appmodel::DataMoveCallbackConf *conf)
 

Function Documentation

◆ createElinkModel()

std::unique_ptr< ElinkConcept > dunedaq::flxlibs::createElinkModel ( const appmodel::DataMoveCallbackConf * conf)

Definition at line 36 of file CreateElink.hpp.

37{
38 auto datatype = conf->get_data_type();
39/*
40
41 if (raw_dt.find("WIBFrame") != std::string::npos) {
42 // WIB1 specific char arrays
43 // Create Model
44 auto elink_model = std::make_unique<ElinkModel<fdreadoutlibs::types::ProtoWIBSuperChunkTypeAdapter>>();
45
46 // Setup sink (acquire pointer from QueueRegistry)
47 elink_model->set_sink(conn_uid);
48
49 // Get parser and sink
50 auto& parser = elink_model->get_parser();
51 auto& sink = elink_model->get_sink();
52 auto& error_sink = elink_model->get_error_sink();
53
54 // Modify parser as needed...
55 parser.process_chunk_func = parsers::fixsizedChunkInto<fdreadoutlibs::types::ProtoWIBSuperChunkTypeAdapter>(sink);
56 if (error_sink != nullptr) {
57 parser.process_chunk_with_error_func = parsers::errorChunkIntoSink(error_sink);
58 }
59 // parser.process_block_func = ...
60
61 // Return with setup model
62 return elink_model;
63
64 } else if (raw_dt.find("WIB2Frame") != std::string::npos) {
65 // WIB2 specific char arrays
66 auto elink_model = std::make_unique<ElinkModel<fdreadoutlibs::types::DUNEWIBSuperChunkTypeAdapter>>();
67 elink_model->set_sink(conn_uid);
68 auto& parser = elink_model->get_parser();
69 auto& sink = elink_model->get_sink();
70 parser.process_chunk_func = parsers::fixsizedChunkInto<fdreadoutlibs::types::DUNEWIBSuperChunkTypeAdapter>(sink);
71 return elink_model;
72
73 } else*/
74 if (datatype.find("PDSStreamFrame") != std::string::npos) {
75 // PDS specific char arrays
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 // PDS specific char arrays
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 // Variable sized user payloads
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...