ATLAS Offline Software
Loading...
Searching...
No Matches
IdDictMgr.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef IDDICT_IDDICTMGR_H
6#define IDDICT_IDDICTMGR_H
7
8#include <map>
9#include <set>
10#include <string>
11#include <vector>
12#include <memory>
13
15
16class IdDictMgr {
17public:
18 using dictionary_vec = std::vector<const IdDictDictionary*>;
19 using metadata_map = std::map<std::string, std::string>;
20
21 IdDictMgr();
23
25 const std::string& tag () const;
26
28 const IdDictDictionary* find_dictionary (const std::string& name) const;
29 IdDictDictionary* find_dictionary (const std::string& name);
30
33
35 const std::string& DTD_version () const;
36
38 bool do_checks () const;
39
41 bool do_neighbours () const;
42
44 const std::string& find_metadata (const std::string& name) const;
45
47 void add_dictionary (std::unique_ptr<IdDictDictionary> dictionary);
48 void add_subdictionary_name (const std::string& name);
49 void add_metadata (const std::string& name, const std::string& value);
50 void set_DTD_version (const std::string& DTD_version);
51 void set_do_checks (bool do_checks);
53
54
56 void resolve_references ();
57 void generate_implementation (const std::string& tag = "");
58
60 void reset_implementation ();
61 void clear ();
62
63 bool verify () const;
64
65
66private:
67
68 using dictionary_map = std::map<std::string, std::unique_ptr<IdDictDictionary> >;
69
71
72 std::string m_DTD_version;
73 std::string m_tag;
76 std::set<std::string> m_subdictionary_names;
81};
82
83#endif
void add_dictionary(std::unique_ptr< IdDictDictionary > dictionary)
Fillers:
const std::string & tag() const
Version tag.
Definition IdDictMgr.cxx:54
void resolve_references()
Construct dictionary after parsing.
void set_DTD_version(const std::string &DTD_version)
void add_metadata(const std::string &name, const std::string &value)
Definition IdDictMgr.cxx:95
std::map< std::string, std::unique_ptr< IdDictDictionary > > dictionary_map
Definition IdDictMgr.h:68
void set_do_neighbours(bool do_neighbours)
Definition IdDictMgr.cxx:79
bool verify() const
metadata_map m_metadata
Definition IdDictMgr.h:75
bool do_checks() const
Check whether or not to do checks for ids.
Definition IdDictMgr.cxx:62
bool do_neighbours() const
Check whether or not to init neighbours.
Definition IdDictMgr.cxx:74
void set_do_checks(bool do_checks)
Definition IdDictMgr.cxx:67
dictionary_vec get_dictionaries() const
Access to all dictionaries.
void generate_implementation(const std::string &tag="")
void add_subdictionary_name(const std::string &name)
std::set< std::string > m_subdictionary_names
Definition IdDictMgr.h:76
dictionary_map m_dictionaries
Definition IdDictMgr.h:74
const IdDictDictionary * find_dictionary(const std::string &name) const
Access dictionary by name.
const std::string & find_metadata(const std::string &name) const
Access to meta data, name/value pairs.
Definition IdDictMgr.cxx:87
void reset_implementation()
Reset of implementation.
void clear()
bool m_do_neighbours
Definition IdDictMgr.h:80
std::map< std::string, std::string > metadata_map
Definition IdDictMgr.h:19
std::vector< const IdDictDictionary * > dictionary_vec
Definition IdDictMgr.h:18
std::string m_tag
Definition IdDictMgr.h:73
const std::string & DTD_version() const
DTD version.
Definition IdDictMgr.cxx:58
bool m_generated_implementation
Definition IdDictMgr.h:78
bool m_do_checks
Definition IdDictMgr.h:79
void find_subdicts(IdDictDictionary *dict)
bool m_resolved_references
Definition IdDictMgr.h:77
std::string m_DTD_version
Definition IdDictMgr.h:72