ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | List of all members
ExpandedIdentifier Class Reference

#include <ExpandedIdentifier.h>

Collaboration diagram for ExpandedIdentifier:

Public Types

enum  max_value_type { max_value = 0x3FFFFFFF }
 
typedef ExpandedIdentifier id_type
 
typedef int element_type
 
typedef boost::container::small_vector< element_type, 12 > element_vector
 
typedef boost::container::small_vector< element_type, 12 >::size_type size_type
 

Public Member Functions

 ExpandedIdentifier ()=default
 
 ExpandedIdentifier (const ExpandedIdentifier &other)=default
 
 ExpandedIdentifier (ExpandedIdentifier &&other)=default
 
ExpandedIdentifieroperator= (const ExpandedIdentifier &other)=default
 
ExpandedIdentifieroperator= (ExpandedIdentifier &&other)=default
 
 ~ExpandedIdentifier ()=default
 
 ExpandedIdentifier (const ExpandedIdentifier &other, size_type start)
 
 ExpandedIdentifier (const std::string &text)
 
void add (element_type value)
 
ExpandedIdentifieroperator<< (element_type value)
 
element_typeoperator[] (size_type index)
 
void set (const std::string &text)
 
void clear ()
 
element_type operator[] (size_type index) const
 
size_type fields () const
 
int operator== (const ExpandedIdentifier &other) const
 
int operator!= (const ExpandedIdentifier &other) const
 
int operator< (const ExpandedIdentifier &other) const
 
int operator> (const ExpandedIdentifier &other) const
 
int prefix_less (const ExpandedIdentifier &other) const
 
int match (const ExpandedIdentifier &other) const
 Test if the shorter of two ids is identical to the equivalent sub-id extracted from the longer. More...
 
 operator std::string () const
 
void show () const
 

Private Attributes

element_vector m_fields
 

Detailed Description

Definition at line 107 of file DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h.

Member Typedef Documentation

◆ element_type

◆ element_vector

typedef boost::container::small_vector<element_type,12> ExpandedIdentifier::element_vector

◆ id_type

◆ size_type

typedef boost::container::small_vector<element_type,12>::size_type ExpandedIdentifier::size_type

Member Enumeration Documentation

◆ max_value_type

Enumerator
max_value 

Definition at line 125 of file DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h.

126  {
127  max_value = 0x3FFFFFFF
128  } max_value_type;

Constructor & Destructor Documentation

◆ ExpandedIdentifier() [1/5]

ExpandedIdentifier::ExpandedIdentifier ( )
default

◆ ExpandedIdentifier() [2/5]

ExpandedIdentifier::ExpandedIdentifier ( const ExpandedIdentifier other)
default

◆ ExpandedIdentifier() [3/5]

ExpandedIdentifier::ExpandedIdentifier ( ExpandedIdentifier &&  other)
default

◆ ~ExpandedIdentifier()

ExpandedIdentifier::~ExpandedIdentifier ( )
default

◆ ExpandedIdentifier() [4/5]

ExpandedIdentifier::ExpandedIdentifier ( const ExpandedIdentifier other,
size_type  start 
)

◆ ExpandedIdentifier() [5/5]

ExpandedIdentifier::ExpandedIdentifier ( const std::string &  text)

Definition at line 37 of file DetectorDescription/Identifier/src/ExpandedIdentifier.cxx.

38 {
39  set (text);
40 }

Member Function Documentation

◆ add()

void ExpandedIdentifier::add ( element_type  value)

◆ clear()

void ExpandedIdentifier::clear ( )

◆ fields()

size_type ExpandedIdentifier::fields ( ) const

◆ match()

int ExpandedIdentifier::match ( const ExpandedIdentifier other) const

Test if the shorter of two ids is identical to the equivalent sub-id extracted from the longer.

◆ operator std::string()

ExpandedIdentifier::operator std::string ( ) const

Definition at line 96 of file DetectorDescription/Identifier/src/ExpandedIdentifier.cxx.

97 {
98  std::string result;
99  char temp[20];
100 
101  size_type my_fields = m_fields.size ();
102 
103  if (my_fields == 0) return (result);
104 
105  // print fields one by one.
106  for (size_type field_number = 0; field_number < my_fields; field_number++)
107  {
108  element_type value = m_fields[field_number];
109 
110  if (field_number > 0) result += "/";
111 
112  sprintf (temp, "%d", value);
113  result += temp;
114  }
115 
116  return (result);
117 }

◆ operator!=()

◆ operator<()

int ExpandedIdentifier::operator< ( const ExpandedIdentifier other) const

◆ operator<<()

ExpandedIdentifier& ExpandedIdentifier::operator<< ( element_type  value)

◆ operator=() [1/2]

ExpandedIdentifier& ExpandedIdentifier::operator= ( const ExpandedIdentifier other)
default

◆ operator=() [2/2]

ExpandedIdentifier& ExpandedIdentifier::operator= ( ExpandedIdentifier &&  other)
default

◆ operator==()

int ExpandedIdentifier::operator== ( const ExpandedIdentifier other) const

◆ operator>()

int ExpandedIdentifier::operator> ( const ExpandedIdentifier other) const

◆ operator[]() [1/2]

element_type& ExpandedIdentifier::operator[] ( size_type  index)

◆ operator[]() [2/2]

element_type ExpandedIdentifier::operator[] ( size_type  index) const

◆ prefix_less()

int ExpandedIdentifier::prefix_less ( const ExpandedIdentifier other) const

Definition at line 70 of file DetectorDescription/Identifier/src/ExpandedIdentifier.cxx.

71 {
72  const ExpandedIdentifier& me = *this;
73  const size_type my_fields = fields ();
74  const size_type other_fields = other.fields ();
75 
76  //
77  // Scan fields up to the less common field number
78  //
79  size_type field = 0;
80  while ((field < my_fields) &&
81  (field < other_fields))
82  {
83  element_type my_field = me[field];
84  element_type other_field = other[field];
85 
86  if (my_field < other_field) return (1);
87  if (my_field > other_field) return (0);
88 
89  field++;
90  }
91 
92  return (0);
93 }

◆ set()

void ExpandedIdentifier::set ( const std::string &  text)

Definition at line 44 of file DetectorDescription/Identifier/src/ExpandedIdentifier.cxx.

45 {
46  clear ();
47  if (text.empty()) return;
48  const char* ctext = text.c_str ();
49 
50  for (;;)
51  {
52 
53  const char* sep;
54 
55  sep = strchr (ctext, '/');
56 
57  int value = 0;
58  sscanf (ctext, "%80d", &value);
59 
61 
62  if (sep == nullptr) break;
63 
64  ctext = sep + 1;
65  }
66 }

◆ show()

void ExpandedIdentifier::show ( ) const

Definition at line 120 of file DetectorDescription/Identifier/src/ExpandedIdentifier.cxx.

121 {
122  show_vector (m_fields);
123 }

Member Data Documentation

◆ m_fields

element_vector ExpandedIdentifier::m_fields
private

The documentation for this class was generated from the following files:
ExpandedIdentifier::max_value
@ max_value
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:127
get_generator_info.result
result
Definition: get_generator_info.py:21
ExpandedIdentifier::add
void add(element_type value)
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:108
athena.value
value
Definition: athena.py:122
ExpandedIdentifier::fields
size_type fields() const
ReadOfcFromCool.field
field
Definition: ReadOfcFromCool.py:48
ExpandedIdentifier::set
void set(const std::string &text)
Definition: DetectorDescription/Identifier/src/ExpandedIdentifier.cxx:44
ExpandedIdentifier::max_value_type
max_value_type
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:126
ExpandedIdentifier::m_fields
element_vector m_fields
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:218
grepfile.sep
sep
Definition: grepfile.py:38
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
ExpandedIdentifier::clear
void clear()
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
ExpandedIdentifier::size_type
boost::container::small_vector< element_type, 12 >::size_type size_type
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:122
ExpandedIdentifier::element_type
int element_type
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:116