Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
DataLinkVector< DC >::iterator Class Reference

class iterator - iterator over elements in DataLinkVector which manages the Entry objects More...

#include <DataLinkVector.h>

Collaboration diagram for DataLinkVector< DC >::iterator:

Public Member Functions

 iterator ()
 constructor More...
 
bool operator!= (const iterator it) const
 comparison operator More...
 
bool operator== (const iterator it) const
 comparison operator More...
 
iteratoroperator= (const iterator it)
 assignment operator More...
 
iteratoroperator++ ()
 increment operator More...
 
iterator operator++ (int)
 increment operator More...
 
DataLinkToperator* ()
 access to object by ref More...
 
DataLinkToperator-> ()
 access to object by pointer More...
 
bool hasData ()
 test if DataHolder has data More...
 

Protected Member Functions

 iterator (const MyType *dlv, EntryVectorIt it)
 
void checkChain ()
 make sure entry is chained If not, add entry to the chain otherwise do nothing because More...
 
EntryVectorentryVector ()
 protected method for derived class to access m_vect More...
 

Protected Attributes

const MyTypem_dlv
 
EntryVectorIt m_it
 

Friends

class DataLinkVector< DC >
 

Detailed Description

template<class DC>
class DataLinkVector< DC >::iterator

class iterator - iterator over elements in DataLinkVector which manages the Entry objects

Definition at line 127 of file DataLinkVector.h.

Constructor & Destructor Documentation

◆ iterator() [1/2]

template<class DC >
DataLinkVector< DC >::iterator::iterator

constructor

Definition at line 333 of file DataLinkVector.h.

334  : m_dlv(NULL) {}

◆ iterator() [2/2]

template<class DC >
DataLinkVector< DC >::iterator::iterator ( const MyType dlv,
EntryVectorIt  it 
)
protected

Definition at line 384 of file DataLinkVector.h.

386  : m_dlv(dlv), m_it(it) {}

Member Function Documentation

◆ checkChain()

template<class DC >
void DataLinkVector< DC >::iterator::checkChain
protected

make sure entry is chained If not, add entry to the chain otherwise do nothing because

Definition at line 393 of file DataLinkVector.h.

394 { if( m_it->previousEntry() == NULL ) m_dlv->chainEntry( &(*m_it) ) ; }

◆ entryVector()

template<class DC >
DataLinkVector< DC >::EntryVector & DataLinkVector< DC >::iterator::entryVector
protected

protected method for derived class to access m_vect

Definition at line 400 of file DataLinkVector.h.

401 {
402  return m_dlv->m_vect ;
403 }

◆ hasData()

template<class DC >
bool DataLinkVector< DC >::iterator::hasData

test if DataHolder has data

Definition at line 374 of file DataLinkVector.h.

375 {
376  // check if DL is valid, and cash the state
377  checkChain(); // this entry has been touched.
378  Entry& e = *m_it;
379  bool DL_valid = e.dataLink().hasData();
380  return DL_valid;
381 }

◆ operator!=()

template<class DC >
bool DataLinkVector< DC >::iterator::operator!= ( const iterator  it) const

comparison operator

Definition at line 339 of file DataLinkVector.h.

340 { return it.m_it != m_it; }

◆ operator*()

template<class DC >
DataLinkVector< DC >::DataLinkT & DataLinkVector< DC >::iterator::operator*

access to object by ref

Definition at line 364 of file DataLinkVector.h.

365 { checkChain(); return m_it->dataLink(); }

◆ operator++() [1/2]

template<class DC >
DataLinkVector< DC >::iterator & DataLinkVector< DC >::iterator::operator++

increment operator

Definition at line 354 of file DataLinkVector.h.

355 { ++m_it; return *this; }

◆ operator++() [2/2]

template<class DC >
DataLinkVector< DC >::iterator DataLinkVector< DC >::iterator::operator++ ( int  )

increment operator

Definition at line 359 of file DataLinkVector.h.

360 { return iterator( m_dlv, m_it++ ); }

◆ operator->()

template<class DC >
DataLinkVector< DC >::DataLinkT * DataLinkVector< DC >::iterator::operator->

access to object by pointer

Definition at line 369 of file DataLinkVector.h.

370 { checkChain(); return &m_it->dataLink(); }

◆ operator=()

template<class DC >
DataLinkVector< DC >::iterator & DataLinkVector< DC >::iterator::operator= ( const iterator  it)

assignment operator

Definition at line 349 of file DataLinkVector.h.

350 { m_dlv = it.m_dlv; m_it = it.m_it; return *this; }

◆ operator==()

template<class DC >
bool DataLinkVector< DC >::iterator::operator== ( const iterator  it) const

comparison operator

Definition at line 344 of file DataLinkVector.h.

345 { return it.m_it == m_it; }

Friends And Related Function Documentation

◆ DataLinkVector< DC >

template<class DC >
friend class DataLinkVector< DC >
friend

Definition at line 155 of file DataLinkVector.h.

Member Data Documentation

◆ m_dlv

template<class DC >
const MyType* DataLinkVector< DC >::iterator::m_dlv
protected

Definition at line 171 of file DataLinkVector.h.

◆ m_it

template<class DC >
EntryVectorIt DataLinkVector< DC >::iterator::m_it
protected

Definition at line 172 of file DataLinkVector.h.


The documentation for this class was generated from the following file:
DataLinkVector::iterator::m_it
EntryVectorIt m_it
Definition: DataLinkVector.h:172
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
skel.it
it
Definition: skel.GENtoEVGEN.py:407
DataLinkVector::chainEntry
void chainEntry(Entry *e) const
add pointed entry in chain of modified entries
Definition: DataLinkVector.h:502
DataLinkVector::m_vect
EntryVector m_vect
Definition: DataLinkVector.h:216
DataLinkVector::iterator::m_dlv
const MyType * m_dlv
Definition: DataLinkVector.h:171
DataLinkVector::iterator::iterator
iterator()
constructor
Definition: DataLinkVector.h:333
DataLinkVector::iterator::checkChain
void checkChain()
make sure entry is chained If not, add entry to the chain otherwise do nothing because
Definition: DataLinkVector.h:393