DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
appmodel
src
ConfigObjectFactory.cpp
Go to the documentation of this file.
1
2
#include "
ConfigObjectFactory.hpp
"
3
#include "
confmodel/Service.hpp
"
4
#include "
oks/file.hpp
"
5
6
#include <fmt/core.h>
// Replace with std::format when we switch to a newer compiler?
7
8
namespace
dunedaq
{
9
namespace
appmodel
{
10
11
ConfigObjectFactory::ConfigObjectFactory
(
const
SmartDaqApplication
* parent)
12
:
m_config
(&parent->configuration())
13
,
m_dbfile
(parent->config_object().contained_in())
14
,
m_app_uid
(parent->UID())
15
{
16
17
// FIXME: remove this hacky hack
18
oks::OksFile::set_nolock_mode
(
true
);
19
}
20
21
ConfigObjectFactory::~ConfigObjectFactory
()
22
{
23
// FIXME: remove this hacky hack
24
oks::OksFile::set_nolock_mode
(
false
);
25
}
26
27
conffwk::ConfigObject
28
ConfigObjectFactory::create
(
const
std::string& class_name,
const
std::string&
id
)
const
29
{
30
conffwk::ConfigObject
cfg_obj;
31
m_config
->
create
(
m_dbfile
, class_name,
id
, cfg_obj);
32
return
cfg_obj;
33
}
34
35
//---
36
conffwk::ConfigObject
37
ConfigObjectFactory::create_queue_obj
(
const
QueueDescriptor
* qdesc, std::string uid)
const
38
{
39
40
std::string queue_uid(qdesc->
get_uid_base
() + uid);
41
auto
queue_obj =
create
(
"Queue"
, queue_uid);
42
queue_obj.set_by_val<std::string>(
"data_type"
, qdesc->
get_data_type
());
43
queue_obj.set_by_val<std::string>(
"queue_type"
, qdesc->
get_queue_type
());
44
queue_obj.set_by_val<uint32_t>(
"capacity"
, qdesc->
get_capacity
());
45
46
return
queue_obj;
47
}
48
49
//---
50
conffwk::ConfigObject
51
ConfigObjectFactory::create_queue_sid_obj
(
const
QueueDescriptor
* qdesc, uint32_t src_id)
const
52
{
53
std::string queue_uid(fmt::format(
"{}{}"
, qdesc->
get_uid_base
(), src_id));
54
auto
queue_obj =
create
(
"QueueWithSourceId"
, queue_uid);
55
56
queue_obj.set_by_val<std::string>(
"data_type"
, qdesc->
get_data_type
());
57
queue_obj.set_by_val<std::string>(
"queue_type"
, qdesc->
get_queue_type
());
58
queue_obj.set_by_val<uint32_t>(
"capacity"
, qdesc->
get_capacity
());
59
queue_obj.set_by_val<uint32_t>(
"source_id"
, src_id);
60
61
return
queue_obj;
62
}
63
64
//---
65
conffwk::ConfigObject
66
ConfigObjectFactory::create_queue_sid_obj
(
const
QueueDescriptor
* qdesc,
const
confmodel::DetectorStream
* stream)
const
67
{
68
return
create_queue_sid_obj
(qdesc, stream->
get_source_id
());
69
}
70
71
//---
72
conffwk::ConfigObject
73
ConfigObjectFactory::create_callback_sid_obj
(
const
DataMoveCallbackDescriptor
* cdesc, uint32_t src_id)
const
74
{
75
std::string rdc_uid(fmt::format(
"{}{}"
, cdesc->
get_uid_base
(), src_id));
76
auto
rdc_obj =
create
(
"DataMoveCallbackConf"
, rdc_uid);
77
78
rdc_obj.set_by_val<std::string>(
"data_type"
, cdesc->
get_data_type
());
79
rdc_obj.set_by_val<uint32_t>(
"source_id"
, src_id);
80
81
return
rdc_obj;
82
}
83
//---
84
93
conffwk::ConfigObject
94
ConfigObjectFactory::create_net_obj
(
const
NetworkConnectionDescriptor
* ndesc, std::string app_uid)
const
95
{
96
97
auto
svc_obj = ndesc->
get_associated_service
()->
config_object
();
98
std::string net_id = ndesc->
get_uid_base
() + app_uid;
99
auto
net_obj =
create
(
"NetworkConnection"
, net_id);
100
101
net_obj.set_by_val<std::string>(
"data_type"
, ndesc->
get_data_type
());
102
net_obj.set_by_val<std::string>(
"connection_type"
, ndesc->
get_connection_type
());
103
net_obj.set_by_val<uint32_t>(
"capacity"
, ndesc->
get_capacity
());
104
net_obj.set_obj(
"associated_service"
, &svc_obj);
105
106
return
net_obj;
107
}
108
109
conffwk::ConfigObject
110
ConfigObjectFactory::create_net_obj
(
const
NetworkConnectionDescriptor
* ndesc)
const
111
{
112
return
create_net_obj
(ndesc, this->
m_app_uid
);
113
}
114
115
}
// namespace appmodel
116
}
// namespace dunedaq
ConfigObjectFactory.hpp
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::~ConfigObjectFactory
~ConfigObjectFactory()
Definition
ConfigObjectFactory.cpp:21
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::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::DataMoveCallbackDescriptor::get_uid_base
const std::string & get_uid_base() const
Get "uid_base" attribute value. Base for callback UID string. May be combined with a source id.
Definition
DataMoveCallbackDescriptor.hpp:94
dunedaq::appmodel::DataMoveCallbackDescriptor::get_data_type
const std::string & get_data_type() const
Get "data_type" attribute value. string identifying type of data passed as a callback parameter.
Definition
DataMoveCallbackDescriptor.hpp:127
dunedaq::appmodel::NetworkConnectionDescriptor
Definition
NetworkConnectionDescriptor.hpp:29
dunedaq::appmodel::NetworkConnectionDescriptor::get_connection_type
const std::string & get_connection_type() const
Get "connection_type" attribute value.
Definition
NetworkConnectionDescriptor.hpp:151
dunedaq::appmodel::NetworkConnectionDescriptor::get_data_type
const std::string & get_data_type() const
Get "data_type" attribute value. string identifying type of data transferred through this connection.
Definition
NetworkConnectionDescriptor.hpp:214
dunedaq::appmodel::NetworkConnectionDescriptor::get_capacity
uint32_t get_capacity() const
Get "capacity" attribute value.
Definition
NetworkConnectionDescriptor.hpp:182
dunedaq::appmodel::NetworkConnectionDescriptor::get_uid_base
const std::string & get_uid_base() const
Get "uid_base" attribute value. Base for UID string. To be combined with a source id.
Definition
NetworkConnectionDescriptor.hpp:110
dunedaq::appmodel::NetworkConnectionDescriptor::get_associated_service
const dunedaq::confmodel::Service * get_associated_service() const
Get "associated_service" relationship value. Service provided by this connection.
Definition
NetworkConnectionDescriptor.hpp:254
dunedaq::appmodel::QueueDescriptor
Definition
QueueDescriptor.hpp:20
dunedaq::appmodel::QueueDescriptor::get_queue_type
const std::string & get_queue_type() const
Get "queue_type" attribute value. Type of queue.
Definition
QueueDescriptor.hpp:144
dunedaq::appmodel::QueueDescriptor::get_data_type
const std::string & get_data_type() const
Get "data_type" attribute value. string identifying type of data transferred through this queue.
Definition
QueueDescriptor.hpp:208
dunedaq::appmodel::QueueDescriptor::get_capacity
uint32_t get_capacity() const
Get "capacity" attribute value.
Definition
QueueDescriptor.hpp:176
dunedaq::appmodel::QueueDescriptor::get_uid_base
const std::string & get_uid_base() const
Get "uid_base" attribute value. Base for UID string. May be combined with a source id.
Definition
QueueDescriptor.hpp:100
dunedaq::appmodel::SmartDaqApplication
Definition
SmartDaqApplication.hpp:42
dunedaq::conffwk::Configuration::create
void create(const std::string &at, const std::string &class_name, const std::string &id, ConfigObject &object)
Create new object by class name and object id.
Definition
Configuration.cpp:739
dunedaq::conffwk::DalObject::config_object
const ConfigObject & config_object() const
Definition
DalObject.hpp:180
dunedaq::confmodel::DetectorStream
Definition
DetectorStream.hpp:32
dunedaq::confmodel::DetectorStream::get_source_id
uint32_t get_source_id() const
Get "source_id" attribute value.
Definition
DetectorStream.hpp:103
dunedaq::oks::OksFile::set_nolock_mode
static void set_nolock_mode(bool nl)
Definition
file.hpp:401
file.hpp
Service.hpp
conffwk.ConfigObject
Definition
ConfigObject.py:1
dunedaq::appmodel
Definition
CardControllerWrapper.hpp:21
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
Generated on
for DUNE-DAQ by
1.18.0