DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dbcontroller.hpp
Go to the documentation of this file.
1#ifndef DBE_DBCONTROLLER_H_
2#define DBE_DBCONTROLLER_H_
3
4#include "dbe/tref.hpp"
5
9
11
12#include <string>
13#include <vector>
14#include <memory>
15#include <iostream>
16#include <mutex>
17#include <unordered_map>
18
19namespace dbe
20{
21namespace inner
22{
23//------------------------------------------------------------------------------------------
25{
26public:
27
35 static configobject::tref get ( dbe::cokey const & desc );
36
43 static std::vector<configobject::tref> gets ( std::string const & cname,
44 std::string const & query = "" );
45
54
61 template<typename T> static configobject::tref create_object_request (
62 configobject::aref<T> const & obj );
63
71 template<typename T> static configobject::tref create_object_request (
72 configobject::gref<T> const & objref );
73
74 template<typename T> static configobject::tref create_object_request (
75 configobject::gref<T> & objref,
77
82 template<typename T> static configobject::gref<T> delete_object_request (
83 configobject::tref const & obj );
84
85 template<typename T> static configobject::gref<T> delete_object_request (
86 configobject::tref const & obj,
88
99 std::string const & destfile );
100
111 std::string const & newname );
112
117 static void flush();
118
119private:
121 typedef std::shared_ptr<configobject::oref> t_object_handle;
122 typedef std::unordered_map<t_object_key, t_object_handle, configobject::refhasher>
124
129 static dbcontroller & ref();
130
138
147 configobject::tref lookup ( dbe::cokey const & desc );
148
155 configobject::tref rename ( configobject::tref objref, std::string const & aname );
156
165 template<typename T> configobject::gref<T> remove ( dbe::tref ref );
166
175 std::vector<configobject::tref> referenced_by ( configobject::tref objref,
176 std::string const & name = "*",
177 bool check_composite_only = true );
178
180
181 typedef std::recursive_mutex t_mutex;
182 typedef std::lock_guard<t_mutex> locker;
184
186 dbcontroller ( dbcontroller const & ) = delete;
187 dbcontroller & operator= ( dbcontroller const & ) = delete;
188
189 friend class configobject::tref;
190};
191
192} // namespace inner
193
194} // end namespace dbe
195//------------------------------------------------------------------------------------------
196
197#endif /* DBE_DBCONTROLLER_H_ */
std::unordered_map< t_object_key, t_object_handle, configobject::refhasher > t_object_map
std::recursive_mutex t_mutex
std::lock_guard< t_mutex > locker
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)
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::shared_ptr< configobject::oref > t_object_handle
static configobject::tref move_object_request(configobject::tref objref, std::string const &destfile)
configobject::tref lookup(dbe::cokey const &desc)
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.