ATLAS Offline Software
Loading...
Searching...
No Matches
MultiRange::const_identifier_factory Class Reference

#include <MultiRange.h>

Collaboration diagram for MultiRange::const_identifier_factory:

Public Member Functions

 const_identifier_factory ()=default
 const_identifier_factory (const MultiRange &multirange)
void operator++ ()
const ExpandedIdentifieroperator* () const
bool operator== (const const_identifier_factory &other) const

Private Types

using id_vec = std::vector<ExpandedIdentifier>
using id_iterator = id_vec::iterator
using id_const_iterator = id_vec::const_iterator

Private Attributes

ExpandedIdentifier m_id {}
ConstRangeIterator m_id_fac_it {}
ConstRangeIterator 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 {}

Detailed Description

Definition at line 52 of file MultiRange.h.

Member Typedef Documentation

◆ id_const_iterator

using MultiRange::const_identifier_factory::id_const_iterator = id_vec::const_iterator
private

Definition at line 63 of file MultiRange.h.

◆ id_iterator

using MultiRange::const_identifier_factory::id_iterator = id_vec::iterator
private

Definition at line 62 of file MultiRange.h.

◆ id_vec

Definition at line 61 of file MultiRange.h.

Constructor & Destructor Documentation

◆ const_identifier_factory() [1/2]

MultiRange::const_identifier_factory::const_identifier_factory ( )
default

◆ const_identifier_factory() [2/2]

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

Set up iterators over ranges and ids.

Definition at line 188 of file MultiRange.cxx.

189 :
190 m_range_it(multirange.m_ranges.begin()),
191 m_range_end(multirange.m_ranges.end()){
192
193 if (m_range_it == m_range_end) return; // no ranges
197 if (m_range_it != m_range_end) {
198 m_id_fac_it = ConstRangeIterator(*m_range_it).begin();
199 m_id_fac_end = ConstRangeIterator(*m_range_it).end();
201 // Set id
202 m_id = *m_id_fac_it;
203 }
204 }
205}
range_vector::const_iterator m_range_end
Definition MultiRange.h:69
range_vector::const_iterator m_range_it
Definition MultiRange.h:68
range_vector m_ranges
Definition MultiRange.h:131

Member Function Documentation

◆ operator*()

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

Definition at line 229 of file MultiRange.cxx.

229 {
230 return (m_id);
231}

◆ operator++()

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

Definition at line 208 of file MultiRange.cxx.

208 {
209 if (m_id.fields () == 0) return;
210 m_id.clear();
211 if (m_range_it != m_range_end) {
212 if (m_id_fac_it != m_id_fac_end) {
213 ++m_id_fac_it;
214 }
215 if (m_id_fac_it == m_id_fac_end) {
216 ++m_range_it;
217 if (m_range_it != m_range_end) {
218 m_id_fac_it = ConstRangeIterator(*m_range_it).begin();
219 m_id_fac_end = ConstRangeIterator(*m_range_it).end();
220 }
221 }
222 if (m_id_fac_it != m_id_fac_end) {
223 m_id = *m_id_fac_it;
224 }
225 }
226}

◆ operator==()

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

Definition at line 234 of file MultiRange.cxx.

234 {
235 return (m_id == other.m_id);
236}

Member Data Documentation

◆ m_id

ExpandedIdentifier MultiRange::const_identifier_factory::m_id {}
private

Definition at line 65 of file MultiRange.h.

65{};

◆ m_id_fac_end

ConstRangeIterator MultiRange::const_identifier_factory::m_id_fac_end {}
private

Definition at line 67 of file MultiRange.h.

67{};

◆ m_id_fac_it

ConstRangeIterator MultiRange::const_identifier_factory::m_id_fac_it {}
private

Definition at line 66 of file MultiRange.h.

66{};

◆ m_id_vec_end

id_iterator MultiRange::const_identifier_factory::m_id_vec_end {}
private

Definition at line 71 of file MultiRange.h.

71{};

◆ m_id_vec_it

id_iterator MultiRange::const_identifier_factory::m_id_vec_it {}
private

Definition at line 70 of file MultiRange.h.

70{};

◆ m_range_end

range_vector::const_iterator MultiRange::const_identifier_factory::m_range_end {}
private

Definition at line 69 of file MultiRange.h.

69{};

◆ m_range_it

range_vector::const_iterator MultiRange::const_identifier_factory::m_range_it {}
private

Definition at line 68 of file MultiRange.h.

68{};

The documentation for this class was generated from the following files: