DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
#include <OksConfiguration.hpp>
Public Types | |
typedef std::map< std::string, std::set< std::string > > | SMap |
![]() | |
typedef void(*) | notify(std::vector< ConfigurationChange * > &changes, Configuration *) |
Callback to notify database changes. | |
typedef void(*) | pre_notify(Configuration *) |
Callback to pre-notify database changes. | |
Public Member Functions | |
OksConfiguration () noexcept | |
virtual | ~OksConfiguration () |
virtual bool | test_object (const std::string &class_name, const std::string &name, unsigned long rlevel, const std::vector< std::string > *rclasses) |
Test object existence (used by Python binding) | |
virtual void | get (const std::string &class_name, const std::string &name, conffwk::ConfigObject &object, unsigned long rlevel, const std::vector< std::string > *rclasses) |
Get object of class by id. | |
virtual void | get (const std::string &class_name, std::vector< conffwk::ConfigObject > &objects, const std::string &query, unsigned long rlevel, const std::vector< std::string > *rclasses) |
virtual void | get (const conffwk::ConfigObject &obj_from, const std::string &query, std::vector< conffwk::ConfigObject > &objects, unsigned long rlevel, const std::vector< std::string > *rclasses) |
virtual conffwk::class_t * | get (const std::string &class_name, bool direct_only) |
Get description of class in accordance with parameters. | |
virtual void | get_superclasses (conffwk::fmap< conffwk::fset > &schema) |
Get inheritance hierarchy. | |
virtual void | create (const std::string &at, const std::string &class_name, const std::string &id, conffwk::ConfigObject &object) |
Create object of class by id at given file. | |
virtual void | create (const conffwk::ConfigObject &at, const std::string &class_name, const std::string &id, conffwk::ConfigObject &object) |
Create object of class by id at file identified by object 'at'. | |
virtual void | destroy (conffwk::ConfigObject &object) |
Destroy object of class by id. | |
virtual void | open_db (const std::string &db_name) |
Open database implementation in accordance with given name. | |
virtual void | close_db () |
Close database implementation. | |
virtual bool | loaded () const noexcept |
Check if a database is loaded. | |
virtual void | create (const std::string &db_name, const std::list< std::string > &includes) |
Create database. | |
virtual bool | is_writable (const std::string &db_name) |
Return write access status. | |
virtual void | add_include (const std::string &db_name, const std::string &include) |
Add include file. | |
virtual void | remove_include (const std::string &db_name, const std::string &include) |
Remove include file. | |
virtual void | get_includes (const std::string &db_name, std::list< std::string > &includes) const |
Get included files. | |
virtual void | get_updated_dbs (std::list< std::string > &dbs) const |
Get uncommitted files. | |
virtual void | set_commit_credentials (const std::string &user, const std::string &password) |
Set commit credentials. | |
virtual void | commit (const std::string &why) |
Commit database changes. | |
virtual void | abort () |
Abort database changes. | |
virtual void | prefetch_all_data () |
Prefetch all data into client cache. | |
virtual std::vector< dunedaq::conffwk::Version > | get_changes () |
Get newly available versions. | |
virtual std::vector< dunedaq::conffwk::Version > | get_versions (const std::string &since, const std::string &until, dunedaq::conffwk::Version::QueryType type, bool skip_irrelevant) |
Get archived versions. | |
virtual void | subscribe (const std::set< std::string > &class_names, const SMap &objs, ConfigurationImpl::notify cb, ConfigurationImpl::pre_notify pre_cb) |
virtual void | unsubscribe () |
Remove subscription on database changes. | |
virtual void | print_profiling_info () noexcept |
Print implementation specific profiling information. | |
const oks::OksKernel & | get_oks_kernel () const |
![]() | |
ConfigurationImpl () noexcept | |
The constructor. | |
virtual | ~ConfigurationImpl () |
Virtual destructor. | |
virtual void | get (const std::string &class_name, std::vector< ConfigObject > &objects, const std::string &query, unsigned long rlevel, const std::vector< std::string > *rclasses)=0 |
Get objects of class according to query. | |
virtual void | get (const ConfigObject &obj_from, const std::string &query, std::vector< ConfigObject > &objects, unsigned long rlevel, const std::vector< std::string > *rclasses)=0 |
Get objects according to path. | |
virtual void | subscribe (const std::set< std::string > &class_names, const std::map< std::string, std::set< std::string > > &objs, notify cb, pre_notify pre_cb)=0 |
Subscribe on database changes. | |
void | print_cache_info () noexcept |
Print profiling information about objects in cache. | |
void | set (Configuration *db) noexcept |
set configuration object | |
void | rename_impl_object (const std::string *class_name, const std::string &old_id, const std::string &new_id) noexcept |
rename object in cache | |
Protected Member Functions | |
void | create (oks::OksFile *at, const std::string &class_name, const std::string &id, conffwk::ConfigObject &object) |
void | init_env () |
OksConfigObject * | new_object (oks::OksObject *obj) noexcept |
void | subscribe () |
![]() | |
ConfigObjectImpl * | get_impl_object (const std::string &class_name, const std::string &id) const noexcept |
get object from cache | |
void | put_impl_object (const std::string &class_name, const std::string &id, ConfigObjectImpl *obj) noexcept |
put object to cache | |
template<class T , class OBJ > | |
T * | insert_object (OBJ &obj, const std::string &id, const std::string &class_name) noexcept |
insert new object (update cache or create-and-insert) | |
void | clean () noexcept |
clean cache (e.g. to be used by destructor) | |
std::mutex & | get_conf_impl_mutex () const |
Is required by reload methods. | |
Static Protected Member Functions | |
static void | create_notify (oks::OksObject *, void *) noexcept |
static void | change_notify (oks::OksObject *, void *) noexcept |
static void | delete_notify (oks::OksObject *, void *) noexcept |
Protected Attributes | |
oks::OksKernel * | m_kernel |
conffwk::ConfigurationImpl::notify | m_fn |
conffwk::ConfigurationImpl::pre_notify | m_pre_fn |
std::set< std::string > | m_class_names |
SMap | m_objects |
bool | m_oks_kernel_silence |
bool | m_oks_kernel_no_repo |
std::list< oks::OksObject * > | m_created |
std::set< oks::OksObject * > | m_modified |
std::map< std::string, std::set< std::string > > | m_removed |
OksConfigurationCheckDB * | m_check_db_obj |
std::thread * | m_check_db_thread |
std::string | m_user |
std::string | m_password |
std::set< oks::OksFile * > | m_created_files |
unsigned int | m_repo_error_count |
![]() | |
Configuration * | m_conf |
Configuration pointer is needed for notification on changes, e.g. in case of subscription or an object deletion. | |
Private Member Functions | |
virtual void | check_db () |
void | close_database (bool unsubscribe) |
Friends | |
class | OksConfigObject |
struct | OksConfigurationCheckDB |
class | ResubscribeGuard |
Definition at line 32 of file OksConfiguration.hpp.
std::map< std::string , std::set<std::string> > dunedaq::oksconflibs::OksConfiguration::SMap |
Definition at line 43 of file OksConfiguration.hpp.
|
inlinenoexcept |
Definition at line 40 of file OksConfiguration.hpp.
|
inlinevirtual |
Definition at line 41 of file OksConfiguration.hpp.
|
virtual |
Abort database changes.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 459 of file OksConfiguration.cpp.
|
virtual |
Add include file.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1150 of file OksConfiguration.cpp.
|
staticprotectednoexcept |
Definition at line 930 of file OksConfiguration.cpp.
|
privatevirtual |
Definition at line 1242 of file OksConfiguration.cpp.
|
private |
Definition at line 227 of file OksConfiguration.cpp.
|
inlinevirtual |
Close database implementation.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 59 of file OksConfiguration.hpp.
|
virtual |
Commit database changes.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 365 of file OksConfiguration.cpp.
|
virtual |
Create object of class by id at file identified by object 'at'.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 918 of file OksConfiguration.cpp.
|
virtual |
Create object of class by id at given file.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 901 of file OksConfiguration.cpp.
|
virtual |
Create database.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 259 of file OksConfiguration.cpp.
|
protected |
Definition at line 861 of file OksConfiguration.cpp.
|
staticprotectednoexcept |
Definition at line 924 of file OksConfiguration.cpp.
|
staticprotectednoexcept |
Definition at line 936 of file OksConfiguration.cpp.
|
virtual |
Destroy object of class by id.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1077 of file OksConfiguration.cpp.
|
virtual |
Definition at line 710 of file OksConfiguration.cpp.
|
virtual |
Get description of class in accordance with parameters.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 736 of file OksConfiguration.cpp.
|
virtual |
Get object of class by id.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 636 of file OksConfiguration.cpp.
|
virtual |
Definition at line 670 of file OksConfiguration.cpp.
|
virtual |
Get newly available versions.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 547 of file OksConfiguration.cpp.
|
virtual |
Get included files.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1214 of file OksConfiguration.cpp.
|
inline |
Definition at line 93 of file OksConfiguration.hpp.
|
virtual |
Get inheritance hierarchy.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 833 of file OksConfiguration.cpp.
|
virtual |
Get uncommitted files.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 340 of file OksConfiguration.cpp.
|
virtual |
Get archived versions.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 583 of file OksConfiguration.cpp.
|
protected |
Definition at line 1438 of file OksConfiguration.cpp.
|
virtual |
Return write access status.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1111 of file OksConfiguration.cpp.
|
inlinevirtualnoexcept |
Check if a database is loaded.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 60 of file OksConfiguration.hpp.
|
protectednoexcept |
Definition at line 605 of file OksConfiguration.cpp.
|
virtual |
Open database implementation in accordance with given name.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 155 of file OksConfiguration.cpp.
|
inlinevirtual |
Prefetch all data into client cache.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 70 of file OksConfiguration.hpp.
|
virtualnoexcept |
Print implementation specific profiling information.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1424 of file OksConfiguration.cpp.
|
virtual |
Remove include file.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1172 of file OksConfiguration.cpp.
|
virtual |
Set commit credentials.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 351 of file OksConfiguration.cpp.
|
protected |
Definition at line 1394 of file OksConfiguration.cpp.
|
virtual |
Definition at line 1378 of file OksConfiguration.cpp.
|
virtual |
Test object existence (used by Python binding)
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 611 of file OksConfiguration.cpp.
|
virtual |
Remove subscription on database changes.
Implements dunedaq::conffwk::ConfigurationImpl.
Definition at line 1409 of file OksConfiguration.cpp.
|
friend |
Definition at line 34 of file OksConfiguration.hpp.
|
friend |
Definition at line 35 of file OksConfiguration.hpp.
|
friend |
Definition at line 36 of file OksConfiguration.hpp.
|
protected |
Definition at line 127 of file OksConfiguration.hpp.
|
protected |
Definition at line 128 of file OksConfiguration.hpp.
|
protected |
Definition at line 101 of file OksConfiguration.hpp.
|
protected |
Definition at line 117 of file OksConfiguration.hpp.
|
protected |
Definition at line 136 of file OksConfiguration.hpp.
|
protected |
Definition at line 99 of file OksConfiguration.hpp.
|
protected |
Definition at line 98 of file OksConfiguration.hpp.
|
protected |
Definition at line 118 of file OksConfiguration.hpp.
|
protected |
Definition at line 102 of file OksConfiguration.hpp.
|
protected |
Definition at line 104 of file OksConfiguration.hpp.
|
protected |
Definition at line 103 of file OksConfiguration.hpp.
|
protected |
Definition at line 131 of file OksConfiguration.hpp.
|
protected |
Definition at line 100 of file OksConfiguration.hpp.
|
protected |
Definition at line 119 of file OksConfiguration.hpp.
|
protected |
Definition at line 141 of file OksConfiguration.hpp.
|
protected |
Definition at line 130 of file OksConfiguration.hpp.