DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
appmodel
src
ConfigObjectFactory.hpp
Go to the documentation of this file.
1
10
#ifndef APPMODEL_INCLUDE_OBJECTFACTORY_HPP_
11
#define APPMODEL_INCLUDE_OBJECTFACTORY_HPP_
12
13
#include "
appmodel/appmodelIssues.hpp
"
14
#include "
appmodel/NetworkConnectionDescriptor.hpp
"
15
#include "
appmodel/QueueDescriptor.hpp
"
16
#include "
appmodel/DataMoveCallbackDescriptor.hpp
"
17
#include "
appmodel/SmartDaqApplication.hpp
"
18
19
#include "
conffwk/ConfigObject.hpp
"
20
#include "
conffwk/Configuration.hpp
"
21
22
#include "
confmodel/DaqModule.hpp
"
23
#include "
confmodel/DetectorStream.hpp
"
24
25
#include <cstdint>
26
#include <string>
27
#include <vector>
28
29
namespace
dunedaq::appmodel
{
30
31
class
ConfigObjectFactory
32
{
33
34
conffwk::Configuration
*
m_config
;
35
std::string
m_dbfile
;
36
std::string
m_app_uid
;
37
38
public
:
39
explicit
ConfigObjectFactory
(
const
SmartDaqApplication
* );
40
41
~ConfigObjectFactory
();
42
43
[[nodiscard]]
conffwk::ConfigObject
44
create
(
const
std::string& class_name,
const
std::string&
id
)
const
;
45
46
//---
47
[[nodiscard]]
conffwk::ConfigObject
48
create_queue_obj
(
const
QueueDescriptor
* qdesc, std::string uid =
""
)
const
;
49
50
//---
51
[[nodiscard]]
conffwk::ConfigObject
52
create_queue_sid_obj
(
const
QueueDescriptor
* qdesc, uint32_t src_id)
const
;
53
54
//---
55
[[nodiscard]]
conffwk::ConfigObject
56
create_queue_sid_obj
(
const
QueueDescriptor
* qdesc,
const
confmodel::DetectorStream
* stream)
const
;
57
58
//---
59
[[nodiscard]]
conffwk::ConfigObject
create_callback_sid_obj
(
const
DataMoveCallbackDescriptor
* cdesc,
60
uint32_t src_id)
const
;
61
70
[[nodiscard]]
conffwk::ConfigObject
71
create_net_obj
(
const
NetworkConnectionDescriptor
* ndesc, std::string uid)
const
;
72
73
[[nodiscard]]
conffwk::ConfigObject
74
create_net_obj
(
const
NetworkConnectionDescriptor
* ndesc)
const
;
75
76
template
<
class
T>
77
const
T*
get_dal
(std::string uid)
const
{
78
return
m_config
->get<T>(uid);
79
}
80
81
template
<
class
T>
82
const
T*
get_dal
(
conffwk::ConfigObject
&
obj
)
const
{
83
return
m_config
->get<T>(
obj
);
84
}
85
86
void
87
update_modules
(
const
std::vector<const confmodel::DaqModule*>& modules) {
88
auto
app =
m_config
->get<
SmartDaqApplication
>(
m_app_uid
);
89
if
(!app->get_modules().empty()) {
90
throw
(BadConf(
ERS_HERE
,
91
"SmartDaqApplication contains DaqModules which would be overwritten by generated DaqModules"
));
92
}
93
if
(!modules.empty()) {
94
const_cast<
SmartDaqApplication
*
>
(app)->set_modules(modules);
95
m_config
->update<
SmartDaqApplication
>({
m_app_uid
}, {}, {});
96
}
97
}
98
99
};
100
101
}
// namespace dunedaq::appmodel
102
103
#endif
// APPMODEL_INCLUDE_OBJECTFACTORY_HPP_
ConfigObject.hpp
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:141
appmodelIssues.hpp
dunedaq::appmodel::ConfigObjectFactory::update_modules
void update_modules(const std::vector< const confmodel::DaqModule * > &modules)
Definition
ConfigObjectFactory.hpp:87
dunedaq::appmodel::ConfigObjectFactory::m_dbfile
std::string m_dbfile
Definition
ConfigObjectFactory.hpp:35
dunedaq::appmodel::ConfigObjectFactory::create_queue_sid_obj
conffwk::ConfigObject create_queue_sid_obj(const QueueDescriptor *qdesc, uint32_t src_id) const
Definition
ConfigObjectFactory.cpp:48
dunedaq::appmodel::ConfigObjectFactory::ConfigObjectFactory
ConfigObjectFactory(const SmartDaqApplication *)
Definition
ConfigObjectFactory.cpp:11
dunedaq::appmodel::ConfigObjectFactory::m_app_uid
std::string m_app_uid
Definition
ConfigObjectFactory.hpp:36
dunedaq::appmodel::ConfigObjectFactory::~ConfigObjectFactory
~ConfigObjectFactory()
Definition
ConfigObjectFactory.cpp:20
dunedaq::appmodel::ConfigObjectFactory::create_callback_sid_obj
conffwk::ConfigObject create_callback_sid_obj(const DataMoveCallbackDescriptor *cdesc, uint32_t src_id) const
Definition
ConfigObjectFactory.cpp:69
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(conffwk::ConfigObject &obj) const
Definition
ConfigObjectFactory.hpp:82
dunedaq::appmodel::ConfigObjectFactory::get_dal
const T * get_dal(std::string uid) const
Definition
ConfigObjectFactory.hpp:77
dunedaq::appmodel::ConfigObjectFactory::create_queue_obj
conffwk::ConfigObject create_queue_obj(const QueueDescriptor *qdesc, std::string uid="") const
Definition
ConfigObjectFactory.cpp:35
dunedaq::appmodel::ConfigObjectFactory::create
conffwk::ConfigObject create(const std::string &class_name, const std::string &id) const
Definition
ConfigObjectFactory.cpp:26
dunedaq::appmodel::ConfigObjectFactory::m_config
conffwk::Configuration * m_config
Definition
ConfigObjectFactory.hpp:34
dunedaq::appmodel::DataMoveCallbackDescriptor
Definition
DataMoveCallbackDescriptor.hpp:20
dunedaq::appmodel::NetworkConnectionDescriptor
Definition
NetworkConnectionDescriptor.hpp:29
dunedaq::appmodel::QueueDescriptor
Definition
QueueDescriptor.hpp:20
dunedaq::appmodel::SmartDaqApplication
Definition
SmartDaqApplication.hpp:42
dunedaq::confmodel::DetectorStream
Definition
DetectorStream.hpp:32
Configuration.hpp
conffwk entry point
DataMoveCallbackDescriptor.hpp
NetworkConnectionDescriptor.hpp
QueueDescriptor.hpp
SmartDaqApplication.hpp
DaqModule.hpp
DetectorStream.hpp
conffwk.ConfigObject
Definition
ConfigObject.py:1
conffwk.Configuration
Definition
Configuration.py:1
dunedaq::appmodel
Definition
CardControllerWrapper.hpp:21
dunedaq::obj
msgpack::object obj
Definition
Serialization.hpp:257
Generated on
for DUNE-DAQ by
1.17.0