ATLAS Offline Software
Loading...
Searching...
No Matches
AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator Class Reference

iterator for association vectors (internal use only) More...

#include <AssociationMap.h>

Collaboration diagram for AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator:

Public Types

using iterator_category = std::bidirectional_iterator_tag
using value_type = asso_type*
using difference_type = std::ptrdiff_t
using pointer = value_type*
using reference = value_type&

Public Member Functions

 AssociationVectorIterator (const asso_store &assoStore)
 alternate constructor
 AssociationVectorIterator (const asso_store &assoStore, const asso_store_iterator &pos)
 alternate constructor
 ~AssociationVectorIterator ()
 destructor
Iterator Methods

The begin(), end() and find() methods are usually provided by the store, here the iterator itself provides it.

The iterator forward (next()) and backward (prev()) advancement methods are provided to support the corresponding operators.

AssociationVectorIterator begin ()
AssociationVectorIterator end ()
AssociationVectorIterator begin () const
AssociationVectorIterator end () const
AssociationVectorIterator next ()
AssociationVectorIterator prev ()
AssociationVectorIterator find (const asso_type *anAsso) const
Iterator Operations
AssociationVectorIterator operator++ ()
 post-forward advancement operator
AssociationVectorIterator operator++ (int)
 pre-forward advancement operator
AssociationVectorIterator operator-- ()
 post-forward advancement operator
AssociationVectorIterator operator-- (int)
 post-forward advancement operator
bool operator== (const AssociationVectorIterator &anOther) const
bool operator!= (const AssociationVectorIterator &anOther) const
const asso_typeoperator* () const
 object retrieval
const asso_typeoperator-> () const
asso_link getLink () const
bool isValid () const

store parameters

const asso_storem_store
 pointer to store
asso_store::const_iterator m_actual
 actual store iterator
size_t size () const
 AssociationVectorIterator ()
 default constructor

Detailed Description

template<class OBJCONT, class ASSCONT>
class AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator

iterator for association vectors (internal use only)

AssociationVectorIterator behaves with many respects like a STL iterator, but is also incomplete with respect to the STL implementation. It can only be used in the context of the association objects, and should not be included directly into client code.

Definition at line 15 of file AssociationMap.h.

Member Typedef Documentation

◆ difference_type

template<class OBJCONT, class ASSCONT>
using AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::difference_type = std::ptrdiff_t

Definition at line 20 of file AssociationMap.h.

◆ iterator_category

template<class OBJCONT, class ASSCONT>
using AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::iterator_category = std::bidirectional_iterator_tag

Definition at line 18 of file AssociationMap.h.

◆ pointer

template<class OBJCONT, class ASSCONT>
using AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::pointer = value_type*

Definition at line 21 of file AssociationMap.h.

◆ reference

template<class OBJCONT, class ASSCONT>
using AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::reference = value_type&

Definition at line 22 of file AssociationMap.h.

◆ value_type

template<class OBJCONT, class ASSCONT>
using AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::value_type = asso_type*

Definition at line 19 of file AssociationMap.h.

Constructor & Destructor Documentation

◆ AssociationVectorIterator() [1/3]

template<class OBJCONT, class ASSCONT>
AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::AssociationVectorIterator ( const asso_store & assoStore)
inline

alternate constructor

The alternate constructor is the only meaningful constructor. It requires an argument

Parameters

c assoStore is a reference to the association store in the implementation class

Definition at line 32 of file AssociationMap.h.

◆ AssociationVectorIterator() [2/3]

template<class OBJCONT, class ASSCONT>
AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::AssociationVectorIterator ( const asso_store & assoStore,
const asso_store_iterator & pos )
inline

alternate constructor

The alternate constructor is the only meaningful constructor. It requires an argument

Parameters

c assoStore is a reference to the association store in the implementation class

Parameters

c pos is a reference to a position in the association store

Definition at line 45 of file AssociationMap.h.

◆ ~AssociationVectorIterator()

template<class OBJCONT, class ASSCONT>
AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::~AssociationVectorIterator ( )
inline

destructor

Definition at line 52 of file AssociationMap.h.

◆ AssociationVectorIterator() [3/3]

template<class OBJCONT, class ASSCONT>
AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::AssociationVectorIterator ( )
inlineprivate

default constructor

Definition at line 191 of file AssociationMap.h.

191 { return m_associationMap.size(); }
192
193 size_t size(const object_type* objectPointer) const;
194
templated base class for a look-up map for associations
size_t size()
get number of associations

Member Function Documentation

◆ begin() [1/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::begin ( )
inline

Definition at line 62 of file AssociationMap.h.

◆ begin() [2/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::begin ( ) const
inline

Definition at line 84 of file AssociationMap.h.

◆ end() [1/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::end ( )
inline

Definition at line 73 of file AssociationMap.h.

◆ end() [2/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::end ( ) const
inline

Definition at line 95 of file AssociationMap.h.

◆ find()

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::find ( const asso_type * anAsso) const
inline

Definition at line 107 of file AssociationMap.h.

◆ getLink()

template<class OBJCONT, class ASSCONT>
asso_link AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::getLink ( ) const
inline

Definition at line 171 of file AssociationMap.h.

◆ isValid()

template<class OBJCONT, class ASSCONT>
bool AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::isValid ( ) const
inline

Definition at line 176 of file AssociationMap.h.

178 { return this->getObjects(*assoIter,theObjects); }
179
bool getObjects(const asso_type *assoPointer, object_list &theObjects) const
get all objects for a given association

◆ next()

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::next ( )
inline

Definition at line 104 of file AssociationMap.h.

◆ operator!=()

template<class OBJCONT, class ASSCONT>
bool AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator!= ( const AssociationVectorIterator & anOther) const
inline

Definition at line 154 of file AssociationMap.h.

155 { return *assoIter; }

◆ operator*()

template<class OBJCONT, class ASSCONT>
const asso_type * AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator* ( ) const
inline

object retrieval

Definition at line 158 of file AssociationMap.h.

162 const asso_type* assoPointer) const;
163
asso_iterator findAssociation(const object_iterator &objectIter, const asso_type *assoPointer) const
find association

◆ operator++() [1/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator++ ( )
inline

post-forward advancement operator

Definition at line 126 of file AssociationMap.h.

◆ operator++() [2/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator++ ( int )
inline

pre-forward advancement operator

Definition at line 134 of file AssociationMap.h.

◆ operator--() [1/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator-- ( )
inline

post-forward advancement operator

Definition at line 137 of file AssociationMap.h.

◆ operator--() [2/2]

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator-- ( int )
inline

post-forward advancement operator

Definition at line 140 of file AssociationMap.h.

141
143 bool containsObject(const object_type* theObject) const
144 { return this->findObject(theObject) != this->endObject(); }
145
AssociationObjectIterator find(const object_type *objectPointer) const
find a given object in store
AssociationObjectIterator object_iterator
object iterator type
object_iterator endObject() const
end iterator for objects
object_iterator findObject(const object_type *theObject) const
finding an object with allocation
bool containsObject(const object_type *theObject) const
testing if object is in store

◆ operator->()

template<class OBJCONT, class ASSCONT>
const asso_type * AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator-> ( ) const
inline

Definition at line 164 of file AssociationMap.h.

168
bool containsAssociation(const object_iterator &objectIter, const asso_type *assoPointer) const
containment check

◆ operator==()

template<class OBJCONT, class ASSCONT>
bool AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::operator== ( const AssociationVectorIterator & anOther) const
inline

Definition at line 149 of file AssociationMap.h.

◆ prev()

template<class OBJCONT, class ASSCONT>
AssociationVectorIterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::prev ( )
inline

Definition at line 105 of file AssociationMap.h.

◆ size()

template<class OBJCONT, class ASSCONT>
size_t AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::size ( ) const
inline

Definition at line 185 of file AssociationMap.h.

185{ return this->getAssociations(objIter.getObject(),assocs); }
const object_type * getObject(const object_iterator &objectIter) const
get association iterators by object iterator
bool getAssociations(const object_type *objPointer, asso_list &assocs) const
get all associations for a given object

Member Data Documentation

◆ m_actual

template<class OBJCONT, class ASSCONT>
asso_store::const_iterator AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::m_actual
private

actual store iterator

Definition at line 203 of file AssociationMap.h.

◆ m_store

template<class OBJCONT, class ASSCONT>
const asso_store* AssociationMap< OBJCONT, ASSCONT >::AssociationVectorIterator::m_store
private

pointer to store

Definition at line 199 of file AssociationMap.h.


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