DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
config_reference_copy.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/config_reference_copy.hpp to include/dbe/config_reference_copy.hpp).
5
6/************************************************************
7 * config_reference_copy.hpp
8 *
9 * Created on: Feb 4, 2016
10 * Author: Leonidas Georgopoulos
11 ************************************************************/
12
13#ifndef DBE_CONFIG_REFERENCE_COPY_HPP_
14#define DBE_CONFIG_REFERENCE_COPY_HPP_
15
18
19#include <functional>
20
21namespace dbe {
22
23namespace inner {
24
25namespace configobject {
26
27//------------------------------------------------------------------------------------------
34template<typename T = config_object_linker>
35class aref : ref_interface<aref<T>>
36{
37private:
38 // A reference to the current reference in the database, which may have been removed
40
41 // The copy of the object
43
44 const tref& ref() const { return this_object_ref; }
45
46public:
47 aref(tref const& o)
50 {
51 }
52
53 friend class ref_interface<aref>;
54 friend class inner::dbcontroller;
55};
56//------------------------------------------------------------------------------------------
57
58//------------------------------------------------------------------------------------------
67template<typename T = config_object_linker>
68class gref
69{
70public:
71 typedef T t_extractor;
72 typedef std::function<void(dref const)> config_action_notifiable;
73
79 bool is_null() const;
80
89
90private:
91 typedef std::deque<t_extractor> type_extractor_stack;
92 typedef std::vector<dbe::tref> type_ref_container;
93
101
107 void record(tref const& obj);
108
112 void post();
113
116
118};
119//------------------------------------------------------------------------------------------
120
121} // namespace configobject
122
123} // namespace inner
124
125} // namespace dbe
126
127#endif /* DBE_CONFIG_REFERENCE_COPY_HPP_ */
void record(tref const &obj)
std::function< void(dref const)> config_action_notifiable
std::deque< t_extractor > type_extractor_stack
std::vector< dbe::tref > type_ref_container
void notify(config_action_notifiable tele)
friend class dbe::inner::configobject::tref
Include QT Headers.
config_object_description dref