DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
asiolibs
src
CreateGenericReceiver.hpp
Go to the documentation of this file.
1
8
#ifndef ASIOLIBS_SRC_CREATEGENERICRECEIVER_HPP_
9
#define ASIOLIBS_SRC_CREATEGENERICRECEIVER_HPP_
10
11
#include "
GenericReceiverConcept.hpp
"
12
#include "
GenericReceiverModel.hpp
"
13
14
#include "
fddetdataformats/CRTBernFrame.hpp
"
15
#include "
fddetdataformats/CRTGrenobleFrame.hpp
"
16
17
#include "
datahandlinglibs/DataHandlingIssues.hpp
"
18
19
#include <memory>
20
#include <string>
21
22
DUNE_DAQ_TYPESTRING
(
dunedaq::fddetdataformats::CRTBernFrame
,
"CRTBernFrame"
)
23
DUNE_DAQ_TYPESTRING
(
dunedaq
::
fddetdataformats
::CRTGrenobleFrame,
"CRTGrenobleFrame"
)
24
25
namespace
dunedaq
::
asiolibs
{
26
27
std::shared_ptr<GenericReceiverConcept>
28
createGenericReceiver
(
const
std::string& receiver_connection_name)
29
{
30
const
auto
datatypes =
dunedaq::iomanager::IOManager::get
()->get_datatypes(receiver_connection_name);
31
if
(datatypes.size() != 1) {
32
ers::error
(datahandlinglibs::GenericConfigurationError(
ERS_HERE
,
33
"Multiple input data types specified! Expected only a single type!"
));
34
}
35
const
std::string dt = *datatypes.begin();
36
TLOG
() <<
"Choosing specializations for GenericReceiverConcept for input connection "
37
<<
" [uid:"
<< receiver_connection_name <<
" , data_type:"
<< dt <<
']'
;
38
39
if
(dt.find(
"CRTBernFrame"
) != std::string::npos) {
40
return
std::make_shared<GenericReceiverModel<fddetdataformats::CRTBernFrame>>(receiver_connection_name);
41
}
else
if
(dt.find(
"CRTGrenobleFrame"
) != std::string::npos) {
42
return
std::make_shared<GenericReceiverModel<fddetdataformats::CRTGrenobleFrame>>(receiver_connection_name);
43
}
44
45
return
nullptr
;
46
}
47
48
}
// namespace dunedaq::asiolibs
49
50
#endif
// ASIOLIBS_SRC_CREATEGENERICRECEIVER_HPP_
CRTBernFrame.hpp
CRTGrenobleFrame.hpp
DataHandlingIssues.hpp
GenericReceiverConcept.hpp
GenericReceiverModel.hpp
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:141
DUNE_DAQ_TYPESTRING
#define DUNE_DAQ_TYPESTRING(Type, typestring)
Declare the datatype_to_string method for the given type.
Definition
Serialization.hpp:36
dunedaq::iomanager::IOManager::get
static std::shared_ptr< IOManager > get()
Definition
IOManager.hpp:40
TLOG
#define TLOG(...)
Definition
macro.hpp:22
dunedaq::asiolibs
Definition
CreateGenericReceiver.hpp:25
dunedaq::asiolibs::createGenericReceiver
std::shared_ptr< GenericReceiverConcept > createGenericReceiver(const std::string &receiver_connection_name)
Definition
CreateGenericReceiver.hpp:28
dunedaq
Including Qt Headers.
Definition
module.cpp:16
ers::error
void error(const Issue &issue)
Definition
ers.hpp:92
fddetdataformats
Definition
__init__.py:1
dunedaq::fddetdataformats::CRTBernFrame
Struct for accessing/holding raw CRT data from the 'Bern' panels ProtoDUNE-II VD.
Definition
CRTBernFrame.hpp:38
Generated on
for DUNE-DAQ by
1.17.0