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

#include <Range.h>

Collaboration diagram for MultiRange::const_identifier_factory:

Public Member Functions

 const_identifier_factory ()
 
 const_identifier_factory (const const_identifier_factory &other)
 
 const_identifier_factory (const MultiRange &multirange)
 
 ~const_identifier_factory ()
 
const_identifier_factoryoperator= (const const_identifier_factory &other)
 
const_identifier_factoryoperator= (const_identifier_factory &&other)
 
void operator++ ()
 
const ExpandedIdentifieroperator* () const
 
bool operator== (const const_identifier_factory &other) const
 
bool operator!= (const const_identifier_factory &other) const
 

Private Types

typedef std::vector< ExpandedIdentifierid_vec
 
typedef id_vec::iterator id_iterator
 
typedef id_vec::const_iterator id_const_iterator
 

Private Attributes

ExpandedIdentifier m_id
 
Range::const_identifier_factory m_id_fac_it
 
Range::const_identifier_factory m_id_fac_end
 
range_vector::const_iterator m_range_it
 
range_vector::const_iterator m_range_end
 
id_iterator m_id_vec_it
 
id_iterator m_id_vec_end
 
const MultiRangem_multirange
 

Detailed Description

Definition at line 399 of file DetectorDescription/Identifier/Identifier/Range.h.

Member Typedef Documentation

◆ id_const_iterator

typedef id_vec::const_iterator MultiRange::const_identifier_factory::id_const_iterator
private

◆ id_iterator

typedef id_vec::iterator MultiRange::const_identifier_factory::id_iterator
private

◆ id_vec

Constructor & Destructor Documentation

◆ const_identifier_factory() [1/3]

MultiRange::const_identifier_factory::const_identifier_factory ( )

Definition at line 2706 of file DetectorDescription/Identifier/src/Range.cxx.

2707  :
2708  m_multirange(nullptr)
2709 {
2710 }

◆ const_identifier_factory() [2/3]

MultiRange::const_identifier_factory::const_identifier_factory ( const const_identifier_factory other)

Definition at line 2713 of file DetectorDescription/Identifier/src/Range.cxx.

2714  :
2715  m_id (other.m_id),
2716  m_id_fac_it (other.m_id_fac_it),
2717  m_id_fac_end (other.m_id_fac_end),
2718  m_range_it (other.m_range_it),
2719  m_range_end (other.m_range_end),
2720  m_id_vec_it (other.m_id_vec_it),
2721  m_id_vec_end (other.m_id_vec_end),
2722  m_multirange (other.m_multirange)
2723 {
2724 }

◆ const_identifier_factory() [3/3]

MultiRange::const_identifier_factory::const_identifier_factory ( const MultiRange multirange)

Set up iterators over ranges and ids.

Definition at line 2728 of file DetectorDescription/Identifier/src/Range.cxx.

2729  :
2730  m_range_it(multirange.m_ranges.begin()),
2731  m_range_end(multirange.m_ranges.end()),
2732  m_multirange(&multirange)
2733 {
2734 
2735  if (m_range_it == m_range_end)return; // no ranges
2739  if (m_range_it != m_range_end) {
2740  m_id_fac_it = (*m_range_it).factory_begin();
2741  m_id_fac_end = (*m_range_it).factory_end();
2742  if(m_id_fac_it != m_id_fac_end) {
2743  // Set id
2744  m_id = *m_id_fac_it;
2745  }
2746  }
2747 }

◆ ~const_identifier_factory()

MultiRange::const_identifier_factory::~const_identifier_factory ( )

Definition at line 2750 of file DetectorDescription/Identifier/src/Range.cxx.

2751 {
2752 }

Member Function Documentation

◆ operator!=()

Definition at line 2826 of file DetectorDescription/Identifier/src/Range.cxx.

2827 {
2828  if (m_id != other.m_id) return (true);
2829  return (false);
2830 }

◆ operator*()

const ExpandedIdentifier & MultiRange::const_identifier_factory::operator* ( ) const

Definition at line 2813 of file DetectorDescription/Identifier/src/Range.cxx.

2814 {
2815  return (m_id);
2816 }

◆ operator++()

void MultiRange::const_identifier_factory::operator++ ( )

Definition at line 2789 of file DetectorDescription/Identifier/src/Range.cxx.

2790 {
2791 
2792  if (m_id.fields () == 0) return;
2793 
2794  m_id.clear();
2795  if (m_range_it != m_range_end) {
2796  if (m_id_fac_it != m_id_fac_end) {
2797  ++m_id_fac_it;
2798  }
2799  if (m_id_fac_it == m_id_fac_end) {
2800  ++m_range_it;
2801  if (m_range_it != m_range_end) {
2802  m_id_fac_it = (*m_range_it).factory_begin();
2803  m_id_fac_end = (*m_range_it).factory_end();
2804  }
2805  }
2806  if (m_id_fac_it != m_id_fac_end) {
2807  m_id = *m_id_fac_it;
2808  }
2809  }
2810 }

◆ operator=() [1/2]

MultiRange::const_identifier_factory & MultiRange::const_identifier_factory::operator= ( const const_identifier_factory other)

Definition at line 2756 of file DetectorDescription/Identifier/src/Range.cxx.

2757 {
2758  if (this != &other) {
2759  m_id = other.m_id;
2760  m_id_fac_it = other.m_id_fac_it;
2761  m_id_fac_end = other.m_id_fac_end;
2762  m_range_it = other.m_range_it;
2763  m_range_end = other.m_range_end;
2764  m_id_vec_it = other.m_id_vec_it;
2765  m_id_vec_end = other.m_id_vec_end;
2766  m_multirange = other.m_multirange;
2767  }
2768  return (*this);
2769 }

◆ operator=() [2/2]

MultiRange::const_identifier_factory & MultiRange::const_identifier_factory::operator= ( const_identifier_factory &&  other)

Definition at line 2772 of file DetectorDescription/Identifier/src/Range.cxx.

2773 {
2774  if (this != &other) {
2775  m_id = std::move(other.m_id);
2776  m_id_fac_it = std::move(other.m_id_fac_it);
2777  m_id_fac_end = std::move(other.m_id_fac_end);
2778  m_range_it = other.m_range_it;
2779  m_range_end = other.m_range_end;
2780  m_id_vec_it = other.m_id_vec_it;
2781  m_id_vec_end = other.m_id_vec_end;
2782  m_multirange = other.m_multirange;
2783  other.m_multirange = nullptr;
2784  }
2785  return (*this);
2786 }

◆ operator==()

bool MultiRange::const_identifier_factory::operator== ( const const_identifier_factory other) const

Definition at line 2819 of file DetectorDescription/Identifier/src/Range.cxx.

2820 {
2821  if (m_id == other.m_id) return (true);
2822  return (false);
2823 }

Member Data Documentation

◆ m_id

ExpandedIdentifier MultiRange::const_identifier_factory::m_id
private

◆ m_id_fac_end

Range::const_identifier_factory MultiRange::const_identifier_factory::m_id_fac_end
private

◆ m_id_fac_it

Range::const_identifier_factory MultiRange::const_identifier_factory::m_id_fac_it
private

◆ m_id_vec_end

id_iterator MultiRange::const_identifier_factory::m_id_vec_end
private

◆ m_id_vec_it

id_iterator MultiRange::const_identifier_factory::m_id_vec_it
private

◆ m_multirange

const MultiRange* MultiRange::const_identifier_factory::m_multirange
private

◆ m_range_end

range_vector::const_iterator MultiRange::const_identifier_factory::m_range_end
private

◆ m_range_it

range_vector::const_iterator MultiRange::const_identifier_factory::m_range_it
private

The documentation for this class was generated from the following files:
ExpandedIdentifier::fields
size_type fields() const
MultiRange::const_identifier_factory::m_range_it
range_vector::const_iterator m_range_it
Definition: DetectorDescription/Identifier/Identifier/Range.h:424
MultiRange::m_ranges
range_vector m_ranges
Definition: DetectorDescription/Identifier/Identifier/Range.h:506
MultiRange::const_identifier_factory::m_range_end
range_vector::const_iterator m_range_end
Definition: DetectorDescription/Identifier/Identifier/Range.h:425
MultiRange::const_identifier_factory::m_id
ExpandedIdentifier m_id
Definition: DetectorDescription/Identifier/Identifier/Range.h:421
MultiRange::const_identifier_factory::m_id_fac_end
Range::const_identifier_factory m_id_fac_end
Definition: DetectorDescription/Identifier/Identifier/Range.h:423
MultiRange::const_identifier_factory::m_id_vec_it
id_iterator m_id_vec_it
Definition: DetectorDescription/Identifier/Identifier/Range.h:426
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MultiRange::const_identifier_factory::m_multirange
const MultiRange * m_multirange
Definition: DetectorDescription/Identifier/Identifier/Range.h:428
ExpandedIdentifier::clear
void clear()
MultiRange::const_identifier_factory::m_id_fac_it
Range::const_identifier_factory m_id_fac_it
Definition: DetectorDescription/Identifier/Identifier/Range.h:422
MultiRange::const_identifier_factory::m_id_vec_end
id_iterator m_id_vec_end
Definition: DetectorDescription/Identifier/Identifier/Range.h:427