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/Errors.hpp
"
5
#include "
conffwk/map.hpp
"
6
7
namespace
dunedaq
{
8
namespace
conffwk
{
9
10
class
DalObject
;
11
class
Configuration
;
12
18
class
DalRegistry
19
{
20
21
friend
class
DalObject
;
22
23
struct
DalDomain
24
{
25
mutable
std::mutex
mutex
;
// mutex used to access template objects (i.e. generated DAL
26
conffwk::map<DalObject*>
cache
;
27
};
28
29
public
:
35
DalRegistry
(
Configuration
& confdb);
36
~DalRegistry
();
37
38
Configuration
&
configuration
() {
return
m_confdb
; }
39
const
Configuration
&
configuration
()
const
{
return
m_confdb
; }
40
45
void
clear
();
46
47
DalObject
*
get
(
ConfigObject
&
obj
,
bool
upcast_unregistered =
false
);
48
std::vector<const DalObject*>
get
(std::vector<ConfigObject>& objs,
bool
upcast_unregistered =
false
);
49
72
template
<
class
T>
73
T*
get
(
ConfigObject
&
obj
,
bool
init_children =
false
,
bool
init_object =
true
);
74
99
template
<
class
T>
100
T*
get
(
const
std::string& name,
101
bool
init_children =
false
,
102
bool
init_object =
true
,
103
unsigned
long
rlevel = 0,
104
const
std::vector<std::string>* rclasses =
nullptr
);
105
120
template
<
class
T>
121
T*
find
(
const
std::string&
id
);
122
131
template
<
class
T>
132
bool
is_valid
(
const
T*
object
)
noexcept
;
133
145
template
<
class
T>
146
void
update
(
const
std::vector<std::string>& modified,
147
const
std::vector<std::string>& removed,
148
const
std::vector<std::string>& created);
149
150
void
update
(
const
std::string& class_name,
151
const
std::vector<std::string>& modified,
152
const
std::vector<std::string>& removed,
153
const
std::vector<std::string>& created);
154
160
void
unread_all
();
161
178
179
template
<
class
T>
180
const
T*
_ref
(
ConfigObject
&
obj
,
const
std::string& name,
bool
read_children);
181
195
template
<
class
T>
196
void
_ref
(
ConfigObject
&
obj
,
const
std::string& name, std::vector<const T*>& results,
bool
read_children);
197
203
template
<
class
T>
204
void
_reset_objects
();
205
217
void
_rename_object
(std::string class_name, std::string old_id, std::string new_id);
218
223
void
update_class_maps
() { this->
update_class_domain_map
(); }
224
225
private
:
226
Configuration
&
m_confdb
;
227
228
mutable
std::mutex
m_mutex
;
// mutex used to access template objects (i.e. generated DAL)
229
230
void
update_class_domain_map
();
231
232
conffwk::fmap<uint>
m_class_domain_map
;
233
234
std::unordered_map<uint, DalDomain>
m_cache_domains
;
235
};
236
237
}
// namespace conffwk
238
}
// namespace dunedaq
239
240
#endif
/* __DUNEDAQ_CONFFWK_DALREGISTRY_HPP__ */
Errors.hpp
dunedaq::conffwk::ConfigObject
Represents database objects.
Definition
ConfigObject.hpp:54
dunedaq::conffwk::Configuration
Defines base class for cache of template objects.
Definition
Configuration.hpp:234
dunedaq::conffwk::DalObject
The base class for any generated DAL object.
Definition
DalObject.hpp:51
dunedaq::conffwk::DalRegistry::m_mutex
std::mutex m_mutex
Definition
DalRegistry.hpp:228
dunedaq::conffwk::DalRegistry::get
DalObject * get(ConfigObject &obj, bool upcast_unregistered=false)
Definition
DalRegistry.cpp:101
dunedaq::conffwk::DalRegistry::configuration
Configuration & configuration()
Definition
DalRegistry.hpp:38
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:39
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:197
dunedaq::conffwk::DalRegistry::clear
void clear()
Clear the content of the registy.
Definition
DalRegistry.cpp:87
dunedaq::conffwk::DalRegistry::DalRegistry
DalRegistry(Configuration &confdb)
Construct a new Dal Registry object.
Definition
DalRegistry.cpp:8
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:223
dunedaq::conffwk::DalRegistry::m_class_domain_map
conffwk::fmap< uint > m_class_domain_map
Definition
DalRegistry.hpp:232
dunedaq::conffwk::DalRegistry::update_class_domain_map
void update_class_domain_map()
Definition
DalRegistry.cpp:69
dunedaq::conffwk::DalRegistry::m_cache_domains
std::unordered_map< uint, DalDomain > m_cache_domains
Definition
DalRegistry.hpp:234
dunedaq::conffwk::DalRegistry::m_confdb
Configuration & m_confdb
Definition
DalRegistry.hpp:226
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:41
dunedaq::conffwk::map
Definition
map.hpp:18
map.hpp
dunedaq::conffwk
Definition
test_circular_dependency.hpp:5
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
dunedaq::obj
msgpack::object obj
Definition
Serialization.hpp:252
dunedaq::conffwk::DalRegistry::DalDomain
Definition
DalRegistry.hpp:24
dunedaq::conffwk::DalRegistry::DalDomain::cache
conffwk::map< DalObject * > cache
Definition
DalRegistry.hpp:26
dunedaq::conffwk::DalRegistry::DalDomain::mutex
std::mutex mutex
Definition
DalRegistry.hpp:25
find
Factory couldn t find
Definition
Issues.hpp:24
Generated on
for DUNE-DAQ by
1.18.0