DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
conffwk
include
conffwk
DalRegistry.hpp
Go to the documentation of this file.
1
#ifndef __DUNEDAQ_CONFFWK_DALREGISTRY_HPP__
2
#define __DUNEDAQ_CONFFWK_DALREGISTRY_HPP__
3
4
#include "
conffwk/map.hpp
"
5
#include "
conffwk/Errors.hpp
"
6
7
namespace
dunedaq
{
8
namespace
conffwk
{
9
10
class
DalObject
;
11
class
Configuration
;
12
13
19
class
DalRegistry
{
20
21
friend
class
DalObject
;
22
23
struct
DalDomain
{
24
mutable
std::mutex
mutex
;
// mutex used to access template objects (i.e. generated DAL
25
conffwk::map<DalObject*>
cache
;
26
};
27
28
public
:
34
DalRegistry
(
Configuration
& confdb);
35
~DalRegistry
();
36
37
Configuration
&
configuration
() {
return
m_confdb
; }
38
const
Configuration
&
configuration
()
const
{
return
m_confdb
; }
39
44
void
clear
();
45
46
DalObject
*
get
(
ConfigObject
&
obj
,
bool
upcast_unregistered=
false
);
47
std::vector<const DalObject*>
get
(std::vector<ConfigObject>& objs,
bool
upcast_unregistered=
false
);
48
69
template
<
class
T>
70
T *
get
(
ConfigObject
&
obj
,
bool
init_children=
false
,
bool
init_object=
true
);
71
72
93
template
<
class
T>
94
T *
get
(
const
std::string& name,
bool
init_children=
false
,
bool
init_object=
true
,
unsigned
long
rlevel = 0,
const
std::vector<std::string> * rclasses =
nullptr
);
95
96
111
template
<
class
T>
112
T *
find
(
const
std::string &
id
);
113
122
template
<
class
T>
123
bool
is_valid
(
const
T *
object
)
noexcept
;
124
135
template
<
class
T>
136
void
update
(
const
std::vector<std::string>& modified,
137
const
std::vector<std::string>& removed,
138
const
std::vector<std::string>& created);
139
140
void
update
(
const
std::string& class_name,
141
const
std::vector<std::string>& modified,
142
const
std::vector<std::string>& removed,
143
const
std::vector<std::string>& created);
144
150
void
unread_all
();
151
167
168
template
<
class
T>
169
const
T*
_ref
(
ConfigObject
&
obj
,
const
std::string& name,
bool
read_children);
170
183
template
<
class
T>
184
void
_ref
(
ConfigObject
&
obj
,
const
std::string& name, std::vector<const T*>& results,
bool
read_children);
185
191
template
<
class
T>
192
void
_reset_objects
();
193
205
void
_rename_object
(std::string class_name, std::string old_id, std::string new_id);
206
211
void
update_class_maps
() {
212
this->
update_class_domain_map
();
213
}
214
215
216
private
:
217
218
Configuration
&
m_confdb
;
219
220
mutable
std::mutex
m_mutex
;
// mutex used to access template objects (i.e. generated DAL)
221
222
void
update_class_domain_map
();
223
224
conffwk::fmap<uint>
m_class_domain_map
;
225
226
std::unordered_map<uint,DalDomain>
m_cache_domains
;
227
228
};
229
230
}
// namespace conffwk
231
}
// namespace dunedaq
232
233
#endif
/* __DUNEDAQ_CONFFWK_DALREGISTRY_HPP__ */
Errors.hpp
dunedaq::conffwk::ConfigObject
Represents database objects.
Definition
ConfigObject.hpp:53
dunedaq::conffwk::Configuration
Defines base class for cache of template objects.
Definition
Configuration.hpp:228
dunedaq::conffwk::DalObject
The base class for any generated DAL object.
Definition
DalObject.hpp:52
dunedaq::conffwk::DalRegistry::~DalRegistry
~DalRegistry()
Definition
DalRegistry.cpp:13
dunedaq::conffwk::DalRegistry::m_mutex
std::mutex m_mutex
Definition
DalRegistry.hpp:220
dunedaq::conffwk::DalRegistry::get
DalObject * get(ConfigObject &obj, bool upcast_unregistered=false)
Definition
DalRegistry.cpp:98
dunedaq::conffwk::DalRegistry::configuration
Configuration & configuration()
Definition
DalRegistry.hpp:37
dunedaq::conffwk::DalRegistry::_reset_objects
void _reset_objects()
Update state of objects after abort operations.
Definition
DalRegistry.hxx:236
dunedaq::conffwk::DalRegistry::update
void update(const std::vector< std::string > &modified, const std::vector< std::string > &removed, const std::vector< std::string > &created)
Update cache of objects in case of modification.
Definition
DalRegistry.hxx:225
dunedaq::conffwk::DalRegistry::configuration
const Configuration & configuration() const
Definition
DalRegistry.hpp:38
dunedaq::conffwk::DalRegistry::_rename_object
void _rename_object(std::string class_name, std::string old_id, std::string new_id)
Rename object of given template class (multi-thread unsafe).
Definition
DalRegistry.cpp:198
dunedaq::conffwk::DalRegistry::clear
void clear()
Clear the content of the registy.
Definition
DalRegistry.cpp:85
dunedaq::conffwk::DalRegistry::DalRegistry
DalRegistry(Configuration &confdb)
Construct a new Dal Registry object.
Definition
DalRegistry.cpp:8
dunedaq::conffwk::DalRegistry::m_cache_domains
std::unordered_map< uint, DalDomain > m_cache_domains
Definition
DalRegistry.hpp:226
dunedaq::conffwk::DalRegistry::unread_all
void unread_all()
Set the status of all objects in cache to unread.
Definition
DalRegistry.cpp:182
dunedaq::conffwk::DalRegistry::_ref
const T * _ref(ConfigObject &obj, const std::string &name, bool read_children)
Get signle value of object's relation and instantiate result with it (multi-thread safe).
Definition
DalRegistry.hxx:164
dunedaq::conffwk::DalRegistry::update_class_maps
void update_class_maps()
Update the internal class domains map.
Definition
DalRegistry.hpp:211
dunedaq::conffwk::DalRegistry::m_class_domain_map
conffwk::fmap< uint > m_class_domain_map
Definition
DalRegistry.hpp:224
dunedaq::conffwk::DalRegistry::update_class_domain_map
void update_class_domain_map()
Definition
DalRegistry.cpp:68
dunedaq::conffwk::DalRegistry::m_confdb
Configuration & m_confdb
Definition
DalRegistry.hpp:218
dunedaq::conffwk::DalRegistry::is_valid
bool is_valid(const T *object) noexcept
Checks validity of pointer to an objects of given user class.
Definition
DalRegistry.hxx:205
dunedaq::conffwk::DalRegistry::DalObject
friend class DalObject
Definition
DalRegistry.hpp:21
dunedaq::conffwk::fmap
Definition
map.hpp:51
dunedaq::conffwk::map
Definition
map.hpp:19
map.hpp
dunedaq::conffwk
Definition
Change.hpp:23
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::obj
msgpack::object obj
Definition
Serialization.hpp:257
dunedaq::conffwk::DalRegistry::DalDomain
Definition
DalRegistry.hpp:23
dunedaq::conffwk::DalRegistry::DalDomain::cache
conffwk::map< DalObject * > cache
Definition
DalRegistry.hpp:25
dunedaq::conffwk::DalRegistry::DalDomain::mutex
std::mutex mutex
Definition
DalRegistry.hpp:24
find
Factory couldn t find
Definition
Issues.hpp:24
Generated on
for DUNE-DAQ by
1.17.0