11#ifndef ATHENAKERNEL_ATH_DSODB_H
12#define ATHENAKERNEL_ATH_DSODB_H 1
19#include <unordered_map>
36 typedef std::vector<std::string>
Libs_t;
37 typedef std::unordered_map<std::string, Libs_t>
DsoMap_t;
42 std::vector<std::string>
45 std::vector<std::string> k;
47 for (Ath::DsoDb::DsoMap_t::const_iterator i = m.begin(), e = m.end();
50 k.push_back(i->first);
56 std::vector<std::vector<std::string> >
59 std::vector<Libs_t> v;
61 for (Ath::DsoDb::DsoMap_t::const_iterator i = m.begin(), e = m.end();
64 v.push_back(i->second);
100 bool has_type(
const std::string& type_name)
const;
105 std::vector<std::string>
capabilities(
const std::string& libname)
const;
Define macros for attributes used to control the static checker.
helper class to query rootmap files and extract their content
DsoMap_t pf_duplicates(bool pedantic=false) const
table of plugin-factories-duplicates: {type: [lib1, lib2, ...]}
DsoMap_t m_db
repository of components
DsoDb & operator=(const DsoDb &rhs)
Assignment operator:
std::vector< std::string > Libs_t
Libs_t libs(bool detailed=false) const
list of all libraries we know about
std::vector< std::string > m_dsofiles
list of dsofiles
std::unordered_map< std::string, Libs_t > DsoMap_t
const DsoMap_t & pf() const
repository of plugin factories
void build_repository()
initialize the repository of dso file names
DsoDb()
Default constructor:
std::vector< std::string > capabilities(const std::string &libname) const
list of reflex-types associated with a library name
bool has_type(const std::string &type_name) const
void get_dups(DsoMap_t &dups, const DsoMap_t &db, bool pedantic) const
get the duplicates for a given repository of components
RootType rflx_type ATLAS_NOT_THREAD_SAFE(const std::string &type_name) const
load the reflex type after having loaded the hosting library
DsoDb(const DsoDb &rhs)
Copy constructor:
const DsoMap_t & db() const
repository of components
static std::vector< std::string > py_keys_from(const Ath::DsoDb::DsoMap_t &m)
static const DsoDb * instance()
factory for the DsoDb
std::string load_type ATLAS_NOT_THREAD_SAFE(const std::string &type_name) const
DsoMap_t dict_duplicates(bool pedantic=false) const
table of dict-duplicates: {type: [lib1, lib2, ...]}
const std::vector< std::string > & dso_files() const
list of all dsomap/rootmap files we know about
DsoMap_t m_pf
repository of plugin factories
DsoMap_t content(bool pedantic) const
return the table {type: [lib1, ...]} - concatenation of all dict-entries and plugin-factories entries...
DsoMap_t duplicates(const std::string &libname, bool pedantic=false) const
list of libraries hosting duplicate reflex-types
static std::vector< std::vector< std::string > > py_vals_from(const Ath::DsoDb::DsoMap_t &m)