DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
appmodel
src
TPWriterApplication.cpp
Go to the documentation of this file.
1
10
11
12
#include "
ConfigObjectFactory.hpp
"
13
#include "
conffwk/Configuration.hpp
"
14
#include "
oks/kernel.hpp
"
15
#include "
confmodel/Connection.hpp
"
16
#include "
confmodel/Service.hpp
"
17
#include "
confmodel/NetworkConnection.hpp
"
18
#include "
appmodel/TPStreamWriterApplication.hpp
"
19
#include "
appmodel/TPStreamWriterModule.hpp
"
20
#include "
appmodel/TPStreamWriterConf.hpp
"
21
#include "
appmodel/NetworkConnectionRule.hpp
"
22
#include "
appmodel/NetworkConnectionDescriptor.hpp
"
23
#include "
appmodel/SourceIDConf.hpp
"
24
#include "
appmodel/appmodelIssues.hpp
"
25
#include "
logging/Logging.hpp
"
26
27
#include <string>
28
#include <vector>
29
#include <iostream>
30
#include <fmt/core.h>
31
32
namespace
dunedaq
{
33
namespace
appmodel
{
34
35
void
36
TPStreamWriterApplication::generate_modules
(std::shared_ptr<appmodel::ConfigurationHelper>
/*helper*/
)
const
37
{
38
std::vector<const confmodel::DaqModule*> modules;
39
40
ConfigObjectFactory
obj_fac(
this
);
41
42
43
auto
tpwriterConf =
get_tp_writer
();
44
if
(tpwriterConf == 0) {
45
throw
(BadConf(
ERS_HERE
,
"No TPStreamWriterModule configuration given"
));
46
}
47
auto
tpwriterConfObj = tpwriterConf->config_object();
48
49
const
NetworkConnectionDescriptor
* tset_in_net_desc =
nullptr
;
50
for
(
auto
rule :
get_network_rules
()) {
51
auto
endpoint_class = rule->get_endpoint_class();
52
auto
data_type = rule->get_descriptor()->get_data_type();
53
if
(data_type ==
"TPSet"
) {
54
tset_in_net_desc = rule->get_descriptor();
55
}
56
}
57
if
( tset_in_net_desc==
nullptr
) {
58
throw
(BadConf(
ERS_HERE
,
"No network descriptor given to receive TPSets"
));
59
}
60
// Create Network Connection
61
conffwk::ConfigObject
tset_in_net_obj = obj_fac.
create_net_obj
(tset_in_net_desc,
".*"
);
62
63
64
auto
source_id =
get_source_id
();
65
if
(source_id ==
nullptr
) {
66
throw
(BadConf(
ERS_HERE
,
"No SourceIDConf given to TPWriterApplication!"
));
67
}
68
69
uint tpw_idx = 0;
70
std::string tpwrUid(
"tpwriter-"
+std::to_string(source_id->get_sid()));
71
conffwk::ConfigObject
tpwrObj = obj_fac.
create
(
"TPStreamWriterModule"
, tpwrUid);
72
tpwrObj.
set_by_val
<uint32_t>(
"source_id"
, source_id->get_sid());
73
tpwrObj.
set_by_val
(
"writer_identifier"
, fmt::format(
"{}_tpw_{}"
,
UID
(), tpw_idx));
74
tpwrObj.
set_obj
(
"configuration"
, &tpwriterConf->config_object());
75
tpwrObj.
set_objs
(
"inputs"
, {&tset_in_net_obj} );
76
77
modules.push_back(obj_fac.
get_dal
<
TPStreamWriterModule
>(tpwrUid));
78
79
obj_fac.
update_modules
(modules);
80
}
81
82
}
// namespace appmodel
83
}
// namespace dunedaq
ConfigObjectFactory.hpp
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:141
appmodelIssues.hpp
dunedaq::appmodel::ConfigObjectFactory
Definition
ConfigObjectFactory.hpp:32
dunedaq::appmodel::ConfigObjectFactory::update_modules
void update_modules(const std::vector< const confmodel::DaqModule * > &modules)
Definition
ConfigObjectFactory.hpp:87
dunedaq::appmodel::ConfigObjectFactory::create_net_obj
conffwk::ConfigObject create_net_obj(const NetworkConnectionDescriptor *ndesc, std::string uid) const
Helper function that gets a network connection config.
Definition
ConfigObjectFactory.cpp:90
dunedaq::appmodel::ConfigObjectFactory::get_dal
const T * get_dal(std::string uid) const
Definition
ConfigObjectFactory.hpp:77
dunedaq::appmodel::ConfigObjectFactory::create
conffwk::ConfigObject create(const std::string &class_name, const std::string &id) const
Definition
ConfigObjectFactory.cpp:26
dunedaq::appmodel::NetworkConnectionDescriptor
Definition
NetworkConnectionDescriptor.hpp:29
dunedaq::appmodel::SmartDaqApplication::get_network_rules
const std::vector< const dunedaq::appmodel::NetworkConnectionRule * > & get_network_rules() const
Get "network_rules" relationship value.
Definition
SmartDaqApplication.hpp:168
dunedaq::appmodel::SmartDaqApplication::get_source_id
const dunedaq::appmodel::SourceIDConf * get_source_id() const
Get "source_id" relationship value.
Definition
SmartDaqApplication.hpp:118
dunedaq::appmodel::TPStreamWriterApplication::get_tp_writer
const dunedaq::appmodel::TPStreamWriterConf * get_tp_writer() const
Get "tp_writer" relationship value.
Definition
TPStreamWriterApplication.hpp:103
dunedaq::appmodel::TPStreamWriterApplication::generate_modules
void generate_modules(std::shared_ptr< appmodel::ConfigurationHelper >) const override
Definition
TPWriterApplication.cpp:36
dunedaq::appmodel::TPStreamWriterModule
Definition
TPStreamWriterModule.hpp:32
dunedaq::conffwk::ConfigObject::set_by_val
void set_by_val(const std::string &name, T value)
Set attribute value.
Definition
ConfigObject.hpp:398
dunedaq::conffwk::ConfigObject::set_objs
void set_objs(const std::string &name, const std::vector< const ConfigObject * > &o, bool skip_non_null_check=false)
Set relationship multi-value.
Definition
ConfigObject.hpp:372
dunedaq::conffwk::ConfigObject::set_obj
void set_obj(const std::string &name, const ConfigObject *o, bool skip_non_null_check=false)
Set relationship single-value.
Definition
ConfigObject.hpp:356
dunedaq::conffwk::DalObject::UID
const std::string & UID() const noexcept
Definition
DalObject.hpp:135
Configuration.hpp
conffwk entry point
NetworkConnectionDescriptor.hpp
NetworkConnectionRule.hpp
SourceIDConf.hpp
TPStreamWriterApplication.hpp
TPStreamWriterConf.hpp
TPStreamWriterModule.hpp
Connection.hpp
NetworkConnection.hpp
Service.hpp
kernel.hpp
Logging.hpp
conffwk.ConfigObject
Definition
ConfigObject.py:1
dunedaq::appmodel
Definition
CardControllerWrapper.hpp:21
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0