DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
confaccessor.hpp
Go to the documentation of this file.
1#ifndef CONFACCESSOR_H
2#define CONFACCESSOR_H
3
4#include "dbe/datahandler.hpp"
6#include "dbe/cptr.hpp"
7#include "dbe/dbinfo.hpp"
8
10#include "conffwk/Change.hpp"
11
12#include <QUndoCommand>
13#include <QObject>
14
15#include <string>
16#include <stack>
17
18extern char const * const dbe_lib_internal_version;
19
20namespace dbe
21{
22//------------------------------------------------------------------------------------------
45//------------------------------------------------------------------------------------------
46
47//------------------------------------------------------------------------------------------
49{
50 std::string ClassName;
51 std::vector<std::string> ModifiedObjects;
52 std::vector<std::string> CreatedObjects;
53 std::vector<std::string> DeletedObjects;
54};
55//------------------------------------------------------------------------------------------
56
57//------------------------------------------------------------------------------------------
59 public QObject
60{
61 Q_OBJECT
62public:
64 typedef std::stack<t_internal_change, std::vector<t_internal_change>>
67
68 typedef QUndoStack t_undo_stack;
70
77 static confaccessor & ref();
78
82 static void init();
83
89 static bool load(bool subscribeToChanges = true);
90
94 static void abort();
95
101 static bool is_database_loaded();
102
108 static bool enabled();
109
115 static std::list<std::string> save ( QString const & );
116
123
129
135
139 static void clear_commands();
140
147
151 void force_emit_object_created ( QString const &, dref const );
152
163 void force_emit_object_deleted ( QString const &, dref const );
164
172 void force_emit_object_renamed ( QString const &, dref const );
173
180 void force_emit_object_changed ( QString const &, dref const );
181
182
183 static void setdbinfo ( QString const & location, dbinfo const itype = dbinfo::oks);
184
185 static void setdblocation ( const QString & Implementation );
186
187 static bool check_file_rw ( const QString & FileName );
188
189 QList<QStringList> GetIncludedFileCache() const;
190
191 void addfile ( std::string const & db, std::string const & fn );
192 void removefile ( std::string const & db, std::string const & fn );
193
194 static QString dbfullname();
195 static QString db_implementation_name();
196
197 static void CallbackFunction ( const std::vector<dunedaq::conffwk::ConfigurationChange *> & changes,
198 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> void set_dbinfo ( QString const & p );
265
266 void docallback ( std::vector<dunedaq::conffwk::ConfigurationChange *> const & changes, void * parameter );
267
268 confaccessor();
269 confaccessor ( confaccessor const & ) = delete;
270 confaccessor & operator= ( confaccessor const & ) = delete;
271
272 friend class dbaccessor;
273};
274//------------------------------------------------------------------------------------------
275
276template<> void confaccessor::set_dbinfo<dbinfo::oks> ( QString const & p );
277template<> void confaccessor::set_dbinfo<dbinfo::roks> ( QString const & p );
278template<> void confaccessor::set_dbinfo<dbinfo::rdb> ( QString const & p );
279
280extern template void confaccessor::set_dbinfo<dbinfo::oks> ( QString const & p );
281extern template void confaccessor::set_dbinfo<dbinfo::roks> ( QString const & p );
282extern template void confaccessor::set_dbinfo<dbinfo::rdb> ( QString const & p );
283
284} // end namespace dbe
285
286#endif // CONFACCESSOR_H
Definition cptr.hpp:50
std::stack< t_internal_change, std::vector< t_internal_change > > t_internal_changes_stack
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()
config_internal_change t_internal_change
void GetFileCache(QList< QStringList > &FileCache)
void object_created(QString const &source, dref const &obj)
static void setdblocation(const QString &Implementation)
std::lock_guard< t_mutex > t_lock
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
void ExternalChangesAccepted()
static void unsubscribe()
t_external_changes_stack external_change_stack
static std::list< std::string > uncommitted_files()
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
static bool enabled()
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)
std::vector< ConfigWrapperExternalChange > t_external_changes_stack
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)
cptr< t_undo_stack > t_undo_stack_cptr
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()
char const *const dbe_lib_internal_version
conffwk entry point
Include QT Headers.
dbinfo
Definition dbinfo.hpp:15
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.