DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dbe
include
dbe
confobject_desc.hpp
Go to the documentation of this file.
1
// DUNE DAQ modification notice:
2
// This file has been modified from the original ATLAS dbe source for the DUNE DAQ project.
3
// Fork baseline commit: dbe-02-12-17 (2022-05-12).
4
// Renamed since fork: yes (from dbe/confobject_desc.hpp to include/dbe/confobject_desc.hpp).
5
6
/*
7
* confobject_desc.hpp
8
*
9
* Created on: Jan 14, 2016
10
* Author: Leonidas Georgopoulos
11
*/
12
13
#ifndef DBE_CONFOBJECT_DESC_HPP_
14
#define DBE_CONFOBJECT_DESC_HPP_
15
16
#include "
dbe/config_object_key.hpp
"
17
#include "
dbe/config_reference.hpp
"
18
19
#include <QStringList>
20
#include <iterator>
21
#include <map>
22
#include <string>
23
#include <vector>
24
25
namespace
dbe
{
26
//------------------------------------------------------------------------------------------
35
template
<
typename
S = std::
string
>
36
class
config_object_description
:
private
config_object_key
<S>
37
{
38
private
:
39
mutable
inner::configobject::tref
this_referenced_object
;
40
S
this_file
;
41
42
friend
void
transfer
(
config_object_description
& one,
config_object_description
& another)
noexcept
43
{
44
std::swap(one.this_referenced_object, another.this_referenced_object);
45
std::swap(one.this_class, another.this_class);
46
std::swap(one.this_name, another.this_name);
47
std::swap(one.this_file, another.this_file);
48
}
49
50
public
:
51
config_object_description
(
dbe::inner::configobject::tref
const
& o)
noexcept
(
false
)
52
:
config_object_key
<S>{ o.UID(), o.class_name() }
53
,
this_referenced_object
(o)
54
,
this_file
(o.contained_in())
55
{
56
}
57
58
config_object_description
(
config_object_description
const
& other)
59
:
config_object_key
<S>{ other.
this_name
, other.
this_class
}
60
,
this_referenced_object
{ other.this_referenced_object }
61
,
this_file
(other.this_file)
62
{
63
}
64
65
config_object_description
operator=
(
config_object_description
other)
66
{
67
transfer
(*
this
, other);
68
return
*
this
;
69
}
70
71
S
UID
()
const
{
return
this->
this_name
; }
72
73
S
class_name
()
const
{
return
this->
this_class
; }
74
75
S
contained_in
()
const
{
return
this->
this_file
; }
76
77
bool
is_valid
()
const
{
return
not
this_referenced_object
.
is_null
(); }
78
88
inner::configobject::tref
ref
()
const
;
89
};
90
typedef
config_object_description<>
dref
;
91
//------------------------------------------------------------------------------------------
92
93
//------------------------------------------------------------------------------------------
94
template
<
typename
S = std::string,
95
typename
I = std::string,
96
typename
A = std::string,
97
template
<
typename
...>
class
V = std::vector,
98
template
<
typename
...>
class
M = std::map>
99
struct
config_object_image
100
{
101
typedef
S
type_str
;
102
typedef
I
type_image
;
103
typedef
A
type_attribute_value
;
104
105
typedef
V<type_image>
type_images
;
106
typedef
V<type_attribute_value>
type_attributes
;
107
108
typedef
M<type_str, type_attributes>
type_attrmap
;
109
typedef
M<type_str, type_images>
type_relmap
;
110
111
typedef
type_str
type_file_name
;
112
113
type_attrmap
attributes
;
114
type_relmap
relations
;
115
116
type_image
ref
;
117
type_file_name
fn
;
118
};
119
//------------------------------------------------------------------------------------------
120
121
//------------------------------------------------------------------------------------------
126
template
<
typename
S>
127
using
config_object_preimage
=
config_object_image<S, config_object_key<S>
, S>;
128
typedef
config_object_preimage<std::string>
t_config_object_preimage
;
129
//------------------------------------------------------------------------------------------
130
131
//------------------------------------------------------------------------------------------
135
template
<
typename
S = std::
string
>
136
struct
config_object_representation
137
{
138
typedef
S
t_str
;
139
typedef
config_object_description<S>
t_confobject
;
140
typedef
std::vector<t_confobject>
t_confobjects
;
141
typedef
std::map<S, QStringList>
t_attrmap
;
142
typedef
std::map<S, t_confobjects>
t_relmap
;
143
144
t_attrmap
attributes
;
145
t_relmap
relations
;
146
147
t_confobject
ref
;
148
149
t_config_object_preimage
toimage
()
150
{
151
t_config_object_preimage::type_attrmap
lattributes;
152
t_config_object_preimage::type_relmap
lrelations;
153
154
std::for_each(std::begin(this->attributes),
155
std::end(this->attributes),
156
[&lattributes](
typename
std::pair<S, QStringList>
const
& e) {
157
t_config_object_preimage::type_attrmap::value_type::second_type v;
158
159
for
(
auto
const
& x : e.second) {
160
v.push_back(x.toStdString());
161
}
162
163
lattributes.insert(std::make_pair(e.first, v));
164
});
165
166
std::for_each(
167
std::begin(this->relations), std::end(this->relations), [&lrelations](
typename
t_relmap::value_type
const
& e) {
168
t_config_object_preimage::type_relmap::value_type::second_type v;
169
170
for
(
t_confobject
const
& x : e.second) {
171
v.push_back({ x.
UID
(), x.
class_name
() });
172
}
173
174
lrelations.insert(std::make_pair(e.first, v));
175
});
176
177
return
{ lattributes, lrelations, { this->ref.
UID
(), this->ref.
class_name
() }, this->ref.
contained_in
() };
178
}
179
};
180
typedef
config_object_representation<>
t_config_object_rep
;
181
//------------------------------------------------------------------------------------------
182
183
}
// end namespace dbe
184
185
#endif
/* DBE_CONFOBJECT_DESC_HPP_ */
dbe::config_object_description
Definition
confobject_desc.hpp:37
dbe::config_object_description::operator=
config_object_description operator=(config_object_description other)
Definition
confobject_desc.hpp:65
dbe::config_object_description::class_name
S class_name() const
Definition
confobject_desc.hpp:73
dbe::config_object_description< S >::this_referenced_object
inner::configobject::tref this_referenced_object
Definition
confobject_desc.hpp:39
dbe::config_object_description::config_object_description
config_object_description(config_object_description const &other)
Definition
confobject_desc.hpp:58
dbe::config_object_description< S >::this_file
S this_file
Definition
confobject_desc.hpp:40
dbe::config_object_description::UID
S UID() const
Definition
confobject_desc.hpp:71
dbe::config_object_description::contained_in
S contained_in() const
Definition
confobject_desc.hpp:75
dbe::config_object_description::ref
inner::configobject::tref ref() const
Definition
dbcontroller.cpp:459
dbe::config_object_description::config_object_description
config_object_description(dbe::inner::configobject::tref const &o) noexcept(false)
Definition
confobject_desc.hpp:51
dbe::config_object_description::is_valid
bool is_valid() const
Definition
confobject_desc.hpp:77
dbe::config_object_description::transfer
friend void transfer(config_object_description &one, config_object_description &another) noexcept
Definition
confobject_desc.hpp:42
dbe::config_object_key::this_name
S this_name
Definition
config_object_key.hpp:27
dbe::config_object_key::this_class
S this_class
Definition
config_object_key.hpp:28
dbe::config_object_key< std::string >::config_object_key
config_object_key(std::string const &oname, std::string const &cname)
Definition
config_object_key.hpp:30
dbe::inner::configobject::ref_interface::is_null
bool is_null() const
Definition
config_reference.hpp:173
dbe::inner::configobject::tref
Definition
config_reference.hpp:416
config_object_key.hpp
config_reference.hpp
dbe
Include QT Headers.
Definition
BatchChangeWidget.hpp:16
dbe::config_object_preimage
config_object_image< S, config_object_key< S >, S > config_object_preimage
Definition
confobject_desc.hpp:127
dbe::t_config_object_preimage
config_object_preimage< std::string > t_config_object_preimage
Definition
confobject_desc.hpp:128
dbe::t_config_object_rep
config_object_representation t_config_object_rep
Definition
confobject_desc.hpp:180
dbe::dref
config_object_description dref
Definition
confobject_desc.hpp:90
dbe::config_object_image
Definition
confobject_desc.hpp:100
dbe::config_object_image::type_relmap
M< type_str, type_images > type_relmap
Definition
confobject_desc.hpp:109
dbe::config_object_image::type_str
S type_str
Definition
confobject_desc.hpp:101
dbe::config_object_image::type_image
I type_image
Definition
confobject_desc.hpp:102
dbe::config_object_image::type_attribute_value
A type_attribute_value
Definition
confobject_desc.hpp:103
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::relations
type_relmap relations
Definition
confobject_desc.hpp:114
dbe::config_object_image::type_attrmap
M< type_str, type_attributes > type_attrmap
Definition
confobject_desc.hpp:108
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::ref
type_image ref
Definition
confobject_desc.hpp:116
dbe::config_object_image::type_images
V< type_image > type_images
Definition
confobject_desc.hpp:105
dbe::config_object_image::type_file_name
type_str type_file_name
Definition
confobject_desc.hpp:111
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::attributes
type_attrmap attributes
Definition
confobject_desc.hpp:113
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::fn
type_file_name fn
Definition
confobject_desc.hpp:117
dbe::config_object_image::type_attributes
V< type_attribute_value > type_attributes
Definition
confobject_desc.hpp:106
dbe::config_object_representation
Definition
confobject_desc.hpp:137
dbe::config_object_representation::t_confobjects
std::vector< t_confobject > t_confobjects
Definition
confobject_desc.hpp:140
dbe::config_object_representation::t_attrmap
std::map< S, QStringList > t_attrmap
Definition
confobject_desc.hpp:141
dbe::t_confobject::relations
t_relmap relations
Definition
confobject_desc.hpp:145
dbe::config_object_representation::toimage
t_config_object_preimage toimage()
Definition
confobject_desc.hpp:149
dbe::config_object_representation::t_str
S t_str
Definition
confobject_desc.hpp:138
dbe::t_confobject::attributes
t_attrmap attributes
Definition
confobject_desc.hpp:144
dbe::t_confobject::ref
t_confobject ref
Definition
confobject_desc.hpp:147
dbe::config_object_representation::t_confobject
config_object_description< S > t_confobject
Definition
confobject_desc.hpp:139
dbe::config_object_representation::t_relmap
std::map< S, t_confobjects > t_relmap
Definition
confobject_desc.hpp:142
Generated on
for DUNE-DAQ by
1.18.0