DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
confaccessor.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/confaccessor.h to include/dbe/confaccessor.hpp).
5
6#ifndef CONFACCESSOR_H
7#define CONFACCESSOR_H
8
10#include "dbe/cptr.hpp"
11#include "dbe/datahandler.hpp"
12#include "dbe/dbinfo.hpp"
13
14#include "conffwk/Change.hpp"
16
17#include <QObject>
18#include <QUndoCommand>
19
20#include <stack>
21#include <string>
22
23extern char const* const dbe_lib_internal_version;
24
25namespace dbe {
26//------------------------------------------------------------------------------------------
49//------------------------------------------------------------------------------------------
50
51//------------------------------------------------------------------------------------------
53{
54 std::string ClassName;
55 std::vector<std::string> ModifiedObjects;
56 std::vector<std::string> CreatedObjects;
57 std::vector<std::string> DeletedObjects;
58};
59//------------------------------------------------------------------------------------------
60
61//------------------------------------------------------------------------------------------
62class confaccessor : public QObject
63{
64 Q_OBJECT
65public:
67 typedef std::stack<t_internal_change, std::vector<t_internal_change>> t_internal_changes_stack;
69
70 typedef QUndoStack t_undo_stack;
72
79 static confaccessor& ref();
80
84 static void init();
85
91 static bool load(bool subscribeToChanges = true);
92
96 static void abort();
97
103 static bool is_database_loaded();
104
110 static bool enabled();
111
117 static std::list<std::string> save(QString const&);
118
125
131
137
141 static void clear_commands();
142
149
153 void force_emit_object_created(QString const&, dref const);
154
165 void force_emit_object_deleted(QString const&, dref const);
166
174 void force_emit_object_renamed(QString const&, dref const);
175
182 void force_emit_object_changed(QString const&, dref const);
183
184 static void setdbinfo(QString const& location, dbinfo const itype = dbinfo::oks);
185
186 static void setdblocation(const QString& Implementation);
187
188 static bool check_file_rw(const QString& FileName);
189
190 QList<QStringList> GetIncludedFileCache() const;
191
192 void addfile(std::string const& db, std::string const& fn);
193 void removefile(std::string const& db, std::string const& fn);
194
195 static QString dbfullname();
196 static QString db_implementation_name();
197
198 static void CallbackFunction(const std::vector<dunedaq::conffwk::ConfigurationChange*>& changes, void* parameter);
199
200 static void unsubscribe();
201
202 static std::list<std::string> uncommitted_files();
203
204 static int get_total_objects();
205 static void set_total_objects(int const i);
206 static void increase_total_objects(int const i);
207
208signals:
209
210 void object_created(QString const& source, dref const& obj);
211 void object_renamed(QString const& source, dref const& obj);
212 void object_changed(QString const& source, dref const& obj);
213 void object_deleted(QString const& source, dref const& obj);
214
215 void db_committed(const std::list<std::string>& files, const std::string& msg);
216
219
220 void ResetTree();
221
224
225public slots:
226 void GetFileCache(QList<QStringList>& FileCache);
227
228private:
229 typedef std::mutex t_mutex;
230 typedef std::lock_guard<t_mutex> t_lock;
231
232 typedef std::vector<ConfigWrapperExternalChange> t_external_changes_stack;
233
236
238
239 std::shared_ptr<t_internal_changes_stack> internal_change_stack;
242
245
246 QList<QStringList> IncludedFileCache;
247
251
253
255
256 void setenabled();
257 void setdisabled();
258
264 template<dbinfo N>
265 void set_dbinfo(QString const& p);
266
267 void docallback(std::vector<dunedaq::conffwk::ConfigurationChange*> const& changes, void* parameter);
268
269 confaccessor();
270 confaccessor(confaccessor const&) = delete;
272
273 friend class dbaccessor;
274};
275//------------------------------------------------------------------------------------------
276
277template<>
278void
280template<>
281void
283template<>
284void
286
287extern template void
289extern template void
291extern template void
293
294} // end namespace dbe
295
296#endif // CONFACCESSOR_H
Definition cptr.hpp:56
std::lock_guard< t_mutex > t_lock
static int get_total_objects()
datahandler * editconfig
QList< QStringList > IncludedFileCache
void force_emit_object_created(QString const &, dref const)
static cptr< datahandler > gethandler()
confaccessor(confaccessor const &)=delete
QUndoStack t_undo_stack
cptr< t_internal_changes_stack > t_internal_changes_stack_cptr
void ExternalChangesDetected()
void GetFileCache(QList< QStringList > &FileCache)
void object_created(QString const &source, dref const &obj)
static void setdblocation(const QString &Implementation)
void removefile(std::string const &db, std::string const &fn)
static t_undo_stack_cptr get_commands()
static void CallbackFunction(const std::vector< dunedaq::conffwk::ConfigurationChange * > &changes, void *parameter)
static void increase_total_objects(int const i)
static bool is_database_loaded()
confaccessor & operator=(confaccessor const &)=delete
cptr< t_undo_stack > t_undo_stack_cptr
void ExternalChangesAccepted()
std::vector< ConfigWrapperExternalChange > t_external_changes_stack
static void unsubscribe()
t_external_changes_stack external_change_stack
static std::list< std::string > uncommitted_files()
std::stack< t_internal_change, std::vector< t_internal_change > > t_internal_changes_stack
void db_committed(const std::list< std::string > &files, const std::string &msg)
t_undo_stack * sequenced_command_stack
std::shared_ptr< t_internal_changes_stack > internal_change_stack
config_internal_change t_internal_change
static bool enabled()
friend class dbaccessor
void force_emit_object_deleted(QString const &, dref const)
QList< QStringList > GetIncludedFileCache() const
static void abort()
static cptr< ui::config::info > guiconfig()
static void set_total_objects(int const i)
ui::config::info * coreconfig
static void init()
static void clear_commands()
void force_emit_object_renamed(QString const &, dref const)
void force_emit_object_changed(QString const &, dref const)
void object_deleted(QString const &source, dref const &obj)
void object_renamed(QString const &source, dref const &obj)
static bool check_file_rw(const QString &FileName)
void object_changed(QString const &source, dref const &obj)
static QString dbfullname()
static t_internal_changes_stack_cptr get_internal_change_stack()
static bool load(bool subscribeToChanges=true)
QString this_resource_location
t_mutex this_change_enabled_mutex
static std::list< std::string > save(QString const &)
void docallback(std::vector< dunedaq::conffwk::ConfigurationChange * > const &changes, void *parameter)
void set_dbinfo(QString const &p)
static void setdbinfo(QString const &location, dbinfo const itype=dbinfo::oks)
static confaccessor & ref()
dunedaq::conffwk::Configuration::CallbackId CallId
void addfile(std::string const &db, std::string const &fn)
static QString db_implementation_name()
CallbackSubscription * CallbackId
Callback identifier.
char const *const dbe_lib_internal_version
conffwk entry point
Include QT Headers.
dbinfo
Definition dbinfo.hpp:19
config_object_description dref
std::vector< std::string > CreatedObjects
std::vector< std::string > DeletedObjects
std::vector< std::string > ModifiedObjects
modification request
Type of modification.
std::string uid
Object Identification.