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/DataMoveCallbackDescriptor.hpp
"
14
#include "
appmodel/NetworkConnectionDescriptor.hpp
"
15
#include "
appmodel/QueueDescriptor.hpp
"
16
#include "
appmodel/SmartDaqApplication.hpp
"
17
#include "
appmodel/appmodelIssues.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
create
(
const
std::string& class_name,
const
std::string&
id
)
const
;
44
45
//---
46
[[nodiscard]]
conffwk::ConfigObject
create_queue_obj
(
const
QueueDescriptor
* qdesc, std::string uid =
""
)
const
;
47
48
//---
49
[[nodiscard]]
conffwk::ConfigObject
create_queue_sid_obj
(
const
QueueDescriptor
* qdesc, uint32_t src_id)
const
;
50
51
//---
52
[[nodiscard]]
conffwk::ConfigObject
create_queue_sid_obj
(
const
QueueDescriptor
* qdesc,
53
const
confmodel::DetectorStream
* stream)
const
;
54
55
//---
56
[[nodiscard]]
conffwk::ConfigObject
create_callback_sid_obj
(
const
DataMoveCallbackDescriptor
* cdesc,
57
uint32_t src_id)
const
;
58
67
[[nodiscard]]
conffwk::ConfigObject
create_net_obj
(
const
NetworkConnectionDescriptor
* ndesc, std::string uid)
const
;
68
69
[[nodiscard]]
conffwk::ConfigObject
create_net_obj
(
const
NetworkConnectionDescriptor
* ndesc)
const
;
70
71
template
<
class
T>
72
const
T*
get_dal
(std::string uid)
const
73
{
74
return
m_config
->
get
<T>(uid);
75
}
76
77
template
<
class
T>
78
const
T*
get_dal
(
conffwk::ConfigObject
&
obj
)
const
79
{
80
return
m_config
->
get
<T>(
obj
);
81
}
82
83
void
update_modules
(
const
std::vector<const confmodel::DaqModule*>& modules)
84
{
85
auto
app =
m_config
->
get
<
SmartDaqApplication
>(
m_app_uid
);
86
if
(!app->get_modules().empty()) {
87
throw
(BadConf(
ERS_HERE
,
88
"SmartDaqApplication contains DaqModules which would be overwritten by generated DaqModules"
));
89
}
90
if
(!modules.empty()) {
91
const_cast<
SmartDaqApplication
*
>
(app)->set_modules(modules);
92
m_config
->
update
<
SmartDaqApplication
>({
m_app_uid
}, {}, {});
93
}
94
}
95
};
96
97
}
// namespace dunedaq::appmodel
98
99
#endif
// APPMODEL_INCLUDE_OBJECTFACTORY_HPP_
ConfigObject.hpp
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:127
appmodelIssues.hpp
dunedaq::appmodel::ConfigObjectFactory::update_modules
void update_modules(const std::vector< const confmodel::DaqModule * > &modules)
Definition
ConfigObjectFactory.hpp:83
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:51
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::create_callback_sid_obj
conffwk::ConfigObject create_callback_sid_obj(const DataMoveCallbackDescriptor *cdesc, uint32_t src_id) const
Definition
ConfigObjectFactory.cpp:73
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:94
dunedaq::appmodel::ConfigObjectFactory::get_dal
const T * get_dal(conffwk::ConfigObject &obj) const
Definition
ConfigObjectFactory.hpp:78
dunedaq::appmodel::ConfigObjectFactory::get_dal
const T * get_dal(std::string uid) const
Definition
ConfigObjectFactory.hpp:72
dunedaq::appmodel::ConfigObjectFactory::create_queue_obj
conffwk::ConfigObject create_queue_obj(const QueueDescriptor *qdesc, std::string uid="") const
Definition
ConfigObjectFactory.cpp:37
dunedaq::appmodel::ConfigObjectFactory::create
conffwk::ConfigObject create(const std::string &class_name, const std::string &id) const
Definition
ConfigObjectFactory.cpp:28
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::conffwk::Configuration::get
void get(const std::string &class_name, const std::string &id, ConfigObject &object, unsigned long rlevel=0, const std::vector< std::string > *rclasses=0)
Get object by class name and object id (multi-thread safe).
Definition
Configuration.cpp:235
dunedaq::conffwk::Configuration::update
void update(const std::vector< std::string > &modified, const std::vector< std::string > &removed, const std::vector< std::string > &created) noexcept
Update cache of objects in case of modification.
Definition
Configuration.hxx:300
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:252
Generated on
for DUNE-DAQ by
1.18.0