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
9#include "dbe/datahandler.hpp"
11#include "dbe/cptr.hpp"
12#include "dbe/dbinfo.hpp"
13
15#include "conffwk/Change.hpp"
16
17#include <QUndoCommand>
18#include <QObject>
19
20#include <string>
21#include <stack>
22
23extern char const * const dbe_lib_internal_version;
24
25namespace dbe
26{
27//------------------------------------------------------------------------------------------
50//------------------------------------------------------------------------------------------
51
52//------------------------------------------------------------------------------------------
54{
55 std::string ClassName;
56 std::vector<std::string> ModifiedObjects;
57 std::vector<std::string> CreatedObjects;
58 std::vector<std::string> DeletedObjects;
59};
60//------------------------------------------------------------------------------------------
61
62//------------------------------------------------------------------------------------------
64 public QObject
65{
66 Q_OBJECT
67public:
69 typedef std::stack<t_internal_change, std::vector<t_internal_change>>
72
73 typedef QUndoStack t_undo_stack;
75
82 static confaccessor & ref();
83
87 static void init();
88
94 static bool load(bool subscribeToChanges = true);
95
99 static void abort();
100
106 static bool is_database_loaded();
107
113 static bool enabled();
114
120 static std::list<std::string> save ( QString const & );
121
128
134
140
144 static void clear_commands();
145
152
156 void force_emit_object_created ( QString const &, dref const );
157
168 void force_emit_object_deleted ( QString const &, dref const );
169
177 void force_emit_object_renamed ( QString const &, dref const );
178
185 void force_emit_object_changed ( QString const &, dref const );
186
187
188 static void setdbinfo ( QString const & location, dbinfo const itype = dbinfo::oks);
189
190 static void setdblocation ( const QString & Implementation );
191
192 static bool check_file_rw ( const QString & FileName );
193
194 QList<QStringList> GetIncludedFileCache() const;
195
196 void addfile ( std::string const & db, std::string const & fn );
197 void removefile ( std::string const & db, std::string const & fn );
198
199 static QString dbfullname();
200 static QString db_implementation_name();
201
202 static void CallbackFunction ( const std::vector<dunedaq::conffwk::ConfigurationChange *> & changes,
203 void * parameter );
204
205 static void unsubscribe();
206
207 static std::list<std::string> uncommitted_files();
208
209 static int get_total_objects();
210 static void set_total_objects ( int const i );
211 static void increase_total_objects ( int const i );
212
213signals:
214
215 void object_created ( QString const & source, dref const & obj );
216 void object_renamed ( QString const & source, dref const & obj );
217 void object_changed ( QString const & source, dref const & obj );
218 void object_deleted ( QString const & source, dref const & obj );
219
220 void db_committed(const std::list<std::string>& files, const std::string& msg);
221
224
225 void ResetTree();
226
229
230public slots:
231 void GetFileCache ( QList<QStringList> & FileCache );
232
233private:
234 typedef std::mutex t_mutex;
235 typedef std::lock_guard<t_mutex> t_lock;
236
237 typedef std::vector<ConfigWrapperExternalChange> t_external_changes_stack;
238
241
243
244 std::shared_ptr<t_internal_changes_stack> internal_change_stack;
247
250
251 QList<QStringList> IncludedFileCache;
252
256
258
260
261 void setenabled();
262 void setdisabled();
263
269 template<dbinfo N> void set_dbinfo ( QString const & p );
270
271 void docallback ( std::vector<dunedaq::conffwk::ConfigurationChange *> const & changes, void * parameter );
272
273 confaccessor();
274 confaccessor ( confaccessor const & ) = delete;
275 confaccessor & operator= ( confaccessor const & ) = delete;
276
277 friend class dbaccessor;
278};
279//------------------------------------------------------------------------------------------
280
281template<> void confaccessor::set_dbinfo<dbinfo::oks> ( QString const & p );
282template<> void confaccessor::set_dbinfo<dbinfo::roks> ( QString const & p );
283template<> void confaccessor::set_dbinfo<dbinfo::rdb> ( QString const & p );
284
285extern template void confaccessor::set_dbinfo<dbinfo::oks> ( QString const & p );
286extern template void confaccessor::set_dbinfo<dbinfo::roks> ( QString const & p );
287extern template void confaccessor::set_dbinfo<dbinfo::rdb> ( QString const & p );
288
289} // end namespace dbe
290
291#endif // CONFACCESSOR_H
Definition cptr.hpp:55
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:20
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.