DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dbcontroller.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/dbcontroller.h to include/dbe/dbcontroller.hpp).
5
6#ifndef DBE_DBCONTROLLER_H_
7#define DBE_DBCONTROLLER_H_
8
9#include "dbe/tref.hpp"
10
14
16
17#include <string>
18#include <vector>
19#include <memory>
20#include <iostream>
21#include <mutex>
22#include <unordered_map>
23
24namespace dbe
25{
26namespace inner
27{
28//------------------------------------------------------------------------------------------
30{
31public:
32
40 static configobject::tref get ( dbe::cokey const & desc );
41
48 static std::vector<configobject::tref> gets ( std::string const & cname,
49 std::string const & query = "" );
50
59
66 template<typename T> static configobject::tref create_object_request (
67 configobject::aref<T> const & obj );
68
76 template<typename T> static configobject::tref create_object_request (
77 configobject::gref<T> const & objref );
78
79 template<typename T> static configobject::tref create_object_request (
80 configobject::gref<T> & objref,
82
87 template<typename T> static configobject::gref<T> delete_object_request (
88 configobject::tref const & obj );
89
90 template<typename T> static configobject::gref<T> delete_object_request (
91 configobject::tref const & obj,
93
104 std::string const & destfile );
105
116 std::string const & newname );
117
122 static void flush();
123
124private:
126 typedef std::shared_ptr<configobject::oref> t_object_handle;
127 typedef std::unordered_map<t_object_key, t_object_handle, configobject::refhasher>
129
134 static dbcontroller & ref();
135
143
152 configobject::tref lookup ( dbe::cokey const & desc );
153
160 configobject::tref rename ( configobject::tref objref, std::string const & aname );
161
170 template<typename T> configobject::gref<T> remove ( dbe::tref ref );
171
180 std::vector<configobject::tref> referenced_by ( configobject::tref objref,
181 std::string const & name = "*",
182 bool check_composite_only = true );
183
185
186 typedef std::recursive_mutex t_mutex;
187 typedef std::lock_guard<t_mutex> locker;
189
191 dbcontroller ( dbcontroller const & ) = delete;
192 dbcontroller & operator= ( dbcontroller const & ) = delete;
193
194 friend class configobject::tref;
195};
196
197} // namespace inner
198
199} // end namespace dbe
200//------------------------------------------------------------------------------------------
201
202#endif /* DBE_DBCONTROLLER_H_ */
std::unordered_map< t_object_key, t_object_handle, configobject::refhasher > t_object_map
configobject::tref rename(configobject::tref objref, std::string const &aname)
static dbcontroller & ref()
configobject::gref< T > remove(dbe::tref ref)
static configobject::gref< T > delete_object_request(configobject::tref const &obj)
std::lock_guard< t_mutex > locker
static std::vector< configobject::tref > gets(std::string const &cname, std::string const &query="")
dbcontroller & operator=(dbcontroller const &)=delete
configobject::tref insert(dunedaq::conffwk::ConfigObject const &)
std::vector< configobject::tref > referenced_by(configobject::tref objref, std::string const &name="*", bool check_composite_only=true)
std::recursive_mutex t_mutex
static configobject::tref move_object_request(configobject::tref objref, std::string const &destfile)
configobject::tref lookup(dbe::cokey const &desc)
std::shared_ptr< configobject::oref > t_object_handle
static configobject::tref get(dbe::cokey const &desc)
static configobject::tref rename_object_request(configobject::tref objref, std::string const &newname)
static configobject::tref create_object_request(dbe::t_config_object_preimage const &rep)
dbcontroller(dbcontroller const &)=delete
Represents database objects.
Include QT Headers.
inner::configobject::tref tref
Definition tref.hpp:35
config_object_preimage< std::string > t_config_object_preimage
config_object_key cokey