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 <map>
21
#include <string>
22
#include <vector>
23
#include <iterator>
24
25
namespace
dbe
26
{
27
//------------------------------------------------------------------------------------------
36
template
<
typename
S = std::
string
>
37
class
config_object_description
:
private
config_object_key
<S>
38
{
39
private
:
40
mutable
inner::configobject::tref
this_referenced_object
;
41
S
this_file
;
42
43
friend
void
transfer
(
config_object_description
& one,
44
config_object_description
& another )
noexcept
45
{
46
std::swap ( one.this_referenced_object, another.this_referenced_object );
47
std::swap ( one.this_class, another.this_class );
48
std::swap ( one.this_name, another.this_name );
49
std::swap ( one.this_file, another.this_file );
50
}
51
52
public
:
53
config_object_description
(
dbe::inner::configobject::tref
const
& o )
noexcept
( false )
54
:
config_object_key
<S>
55
{ o.UID(), o.class_name() },
56
this_referenced_object
( o ),
57
this_file
( o.contained_in() )
58
{
59
}
60
61
config_object_description
(
config_object_description
const
& other )
62
:
config_object_key
<S>
63
{ other.
this_name
, other.
this_class
},
64
this_referenced_object
65
{ other.this_referenced_object },
66
this_file
( other.this_file )
67
{
68
69
}
70
71
config_object_description
operator=
(
config_object_description
other )
72
{
73
transfer
( *
this
, other );
74
return
*
this
;
75
}
76
77
S
UID
()
const
78
{
79
return
this->
this_name
;
80
}
81
82
S
class_name
()
const
83
{
84
return
this->
this_class
;
85
}
86
87
S
contained_in
()
const
88
{
89
return
this->
this_file
;
90
}
91
92
bool
is_valid
()
const
93
{
94
return
not
this_referenced_object
.is_null();
95
}
96
106
inner::configobject::tref
ref
()
const
;
107
108
};
109
typedef
config_object_description<>
dref
;
110
//------------------------------------------------------------------------------------------
111
112
//------------------------------------------------------------------------------------------
113
template
<
typename
S = std::string,
typename
I = std::string,
typename
A = std::string,
114
template
<
typename
... >
class
V = std::vector,
template
<
typename
...>
class
M = std::map >
115
struct
config_object_image
116
{
117
typedef
S
type_str
;
118
typedef
I
type_image
;
119
typedef
A
type_attribute_value
;
120
121
typedef
V<type_image>
type_images
;
122
typedef
V<type_attribute_value>
type_attributes
;
123
124
typedef
M<type_str, type_attributes>
type_attrmap
;
125
typedef
M<type_str, type_images>
type_relmap
;
126
127
typedef
type_str
type_file_name
;
128
129
type_attrmap
attributes
;
130
type_relmap
relations
;
131
132
type_image
ref
;
133
type_file_name
fn
;
134
};
135
//------------------------------------------------------------------------------------------
136
137
//------------------------------------------------------------------------------------------
142
template
<
typename
S>
using
config_object_preimage
=
143
config_object_image<S, config_object_key<S>
, S>;
144
typedef
config_object_preimage<std::string>
t_config_object_preimage
;
145
//------------------------------------------------------------------------------------------
146
147
//------------------------------------------------------------------------------------------
151
template
<
typename
S = std::
string
>
152
struct
config_object_representation
153
{
154
typedef
S
t_str
;
155
typedef
config_object_description<S>
t_confobject
;
156
typedef
std::vector<t_confobject>
t_confobjects
;
157
typedef
std::map<S, QStringList>
t_attrmap
;
158
typedef
std::map<S, t_confobjects>
t_relmap
;
159
160
t_attrmap
attributes
;
161
t_relmap
relations
;
162
163
t_confobject
ref
;
164
165
t_config_object_preimage
toimage
()
166
{
167
t_config_object_preimage::type_attrmap
lattributes;
168
t_config_object_preimage::type_relmap
lrelations;
169
170
std::for_each ( std::begin ( this->attributes ), std::end ( this->attributes ),
171
[&lattributes] (
typename
std::pair<S, QStringList>
const
& e )
172
{
173
t_config_object_preimage::type_attrmap::value_type::second_type v;
174
175
for
(
auto
const
& x : e.second )
176
{
177
v.push_back ( x.toStdString() );
178
}
179
180
lattributes.insert ( std::make_pair ( e.first, v ) );
181
} );
182
183
std::for_each ( std::begin ( this->relations ), std::end ( this->relations ),
184
[&lrelations] (
typename
t_relmap::value_type
const
& e )
185
{
186
t_config_object_preimage::type_relmap::value_type::second_type v;
187
188
for
(
t_confobject
const
& x : e.second )
189
{
190
v.push_back ( { x.
UID
(), x.
class_name
() } );
191
}
192
193
lrelations.insert ( std::make_pair ( e.first, v ) );
194
} );
195
196
return
197
{
198
lattributes, lrelations,
199
{ this->ref.
UID
(), this->ref.
class_name
() }, this->ref.
contained_in
() };
200
}
201
};
202
typedef
config_object_representation<>
t_config_object_rep
;
203
//------------------------------------------------------------------------------------------
204
205
}
// end namespace dbe
206
207
#endif
/* DBE_CONFOBJECT_DESC_HPP_ */
dbe::config_object_description
Definition
confobject_desc.hpp:38
dbe::config_object_description::operator=
config_object_description operator=(config_object_description other)
Definition
confobject_desc.hpp:71
dbe::config_object_description::class_name
S class_name() const
Definition
confobject_desc.hpp:82
dbe::config_object_description< S >::this_referenced_object
inner::configobject::tref this_referenced_object
Definition
confobject_desc.hpp:40
dbe::config_object_description::config_object_description
config_object_description(config_object_description const &other)
Definition
confobject_desc.hpp:61
dbe::config_object_description< S >::this_file
S this_file
Definition
confobject_desc.hpp:41
dbe::config_object_description::UID
S UID() const
Definition
confobject_desc.hpp:77
dbe::config_object_description::contained_in
S contained_in() const
Definition
confobject_desc.hpp:87
dbe::config_object_description::ref
inner::configobject::tref ref() const
Definition
dbcontroller.cpp:500
dbe::config_object_description::config_object_description
config_object_description(dbe::inner::configobject::tref const &o) noexcept(false)
Definition
confobject_desc.hpp:53
dbe::config_object_description::is_valid
bool is_valid() const
Definition
confobject_desc.hpp:92
dbe::config_object_description::transfer
friend void transfer(config_object_description &one, config_object_description &another) noexcept
Definition
confobject_desc.hpp:43
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::tref
Definition
config_reference.hpp:457
config_object_key.hpp
config_reference.hpp
dbe
Include QT Headers.
Definition
BatchChangeWidget.hpp:18
dbe::t_config_object_preimage
config_object_preimage< std::string > t_config_object_preimage
Definition
confobject_desc.hpp:144
dbe::config_object_preimage
config_object_image< S, config_object_key< S >, S > config_object_preimage
Definition
confobject_desc.hpp:142
dbe::t_config_object_rep
config_object_representation t_config_object_rep
Definition
confobject_desc.hpp:202
dbe::dref
config_object_description dref
Definition
confobject_desc.hpp:109
dbe::config_object_image
Definition
confobject_desc.hpp:116
dbe::config_object_image::type_relmap
M< type_str, type_images > type_relmap
Definition
confobject_desc.hpp:125
dbe::config_object_image::type_str
S type_str
Definition
confobject_desc.hpp:117
dbe::config_object_image::type_image
I type_image
Definition
confobject_desc.hpp:118
dbe::config_object_image::type_attribute_value
A type_attribute_value
Definition
confobject_desc.hpp:119
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::relations
type_relmap relations
Definition
confobject_desc.hpp:130
dbe::config_object_image::type_attrmap
M< type_str, type_attributes > type_attrmap
Definition
confobject_desc.hpp:124
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::ref
type_image ref
Definition
confobject_desc.hpp:132
dbe::config_object_image::type_images
V< type_image > type_images
Definition
confobject_desc.hpp:121
dbe::config_object_image::type_file_name
type_str type_file_name
Definition
confobject_desc.hpp:127
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::attributes
type_attrmap attributes
Definition
confobject_desc.hpp:129
dbe::config_object_image< S, config_object_key< S >, S >< std::string >::fn
type_file_name fn
Definition
confobject_desc.hpp:133
dbe::config_object_image::type_attributes
V< type_attribute_value > type_attributes
Definition
confobject_desc.hpp:122
dbe::config_object_representation
Definition
confobject_desc.hpp:153
dbe::config_object_representation::t_confobjects
std::vector< t_confobject > t_confobjects
Definition
confobject_desc.hpp:156
dbe::config_object_representation::t_attrmap
std::map< S, QStringList > t_attrmap
Definition
confobject_desc.hpp:157
dbe::t_confobject::relations
t_relmap relations
Definition
confobject_desc.hpp:161
dbe::config_object_representation::toimage
t_config_object_preimage toimage()
Definition
confobject_desc.hpp:165
dbe::config_object_representation::t_str
S t_str
Definition
confobject_desc.hpp:154
dbe::t_confobject::attributes
t_attrmap attributes
Definition
confobject_desc.hpp:160
dbe::t_confobject::ref
t_confobject ref
Definition
confobject_desc.hpp:163
dbe::config_object_representation::t_confobject
config_object_description< S > t_confobject
Definition
confobject_desc.hpp:155
dbe::config_object_representation::t_relmap
std::map< S, t_confobjects > t_relmap
Definition
confobject_desc.hpp:158
Generated on
for DUNE-DAQ by
1.17.0