ATLAS Offline Software
IdDictField.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_IdDictField_H
6 #define IDDICT_IdDictField_H
7 
9 #include <string>
10 #include <vector>
11 
12 class IdDictLabel;
13 class IdDictMgr;
14 
15 class IdDictField {
16 public:
17  // ==================================
18  //** @name Constructor/destructor
19  // @{
20 
21  IdDictField (const std::string& name);
22 
23 
24  // @}
25  // ==================================
26  //** @name Simple accessors.
27  // @{
28 
29  const std::string& name() const;
30  size_t index() const;
31  size_t get_label_number () const;
32  IdDictLabel* find_label (const std::string& name) const;
33  const IdDictLabel& label (size_t index) const;
34  const std::string& get_label (size_t index) const;
35  ExpandedIdentifier::element_type get_label_value (const std::string& name) const;
36 
37 
39  // ==================================
40  //** @name Methods used to initialize the object.
41  // @{
42 
43  void add_label (IdDictLabel* label);
44  void set_index (size_t index);
45  bool verify () const;
46  void clear ();
47 
48 
50 
51 
52 private:
53  std::string m_name;
54  std::vector <IdDictLabel*> m_labels;
55  size_t m_index{};
56 };
57 
58 
59 inline
60 const std::string& IdDictField::name() const
61 {
62  return m_name;
63 }
64 
65 
66 inline
67 size_t IdDictField::index() const
68 {
69  return m_index;
70 }
71 
72 
73 inline
74 const IdDictLabel& IdDictField::label (size_t index) const
75 {
76  return *m_labels.at(index);
77 }
78 
79 
80 #endif
IdDictField::set_index
void set_index(size_t index)
Definition: IdDictField.cxx:38
IdDictField::m_index
size_t m_index
Definition: IdDictField.h:55
IdDictField::get_label
const std::string & get_label(size_t index) const
Definition: IdDictField.cxx:48
IdDictField::add_label
void add_label(IdDictLabel *label)
Definition: IdDictField.cxx:33
index
Definition: index.py:1
IdDictField::clear
void clear()
Definition: IdDictField.cxx:80
IdDictField::find_label
IdDictLabel * find_label(const std::string &name) const
Definition: IdDictField.cxx:23
ExpandedIdentifier.h
IdDictField::index
size_t index() const
Definition: IdDictField.h:67
IdDictField::label
const IdDictLabel & label(size_t index) const
Definition: IdDictField.h:74
IdDictLabel
Definition: IdDictLabel.h:10
IdDictMgr
Definition: IdDictMgr.h:14
IdDictField::m_name
std::string m_name
Definition: IdDictField.h:53
IdDictField::get_label_number
size_t get_label_number() const
Definition: IdDictField.cxx:43
IdDictField::verify
bool verify() const
Definition: IdDictField.cxx:19
IdDictField::name
const std::string & name() const
Definition: IdDictField.h:60
IdDictField::get_label_value
ExpandedIdentifier::element_type get_label_value(const std::string &name) const
Definition: IdDictField.cxx:58
IdDictField::m_labels
std::vector< IdDictLabel * > m_labels
Definition: IdDictField.h:54
IdDictField::IdDictField
IdDictField(const std::string &name)
Definition: IdDictField.cxx:12
IdDictField
Definition: IdDictField.h:15
ExpandedIdentifier::element_type
int element_type
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:106