Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ManyFastLists_iterator< OBJECT > Struct Template Reference

#include <G4FastList.hh>

Collaboration diagram for G4ManyFastLists_iterator< OBJECT >:

Public Types

typedef G4FastList< G4FastList
< OBJECT > > 
ManyLists
 
typedef G4ManyFastLists_iterator _Self
 
typedef G4FastListNode< OBJECT > _Node
 

Public Member Functions

 G4ManyFastLists_iterator (G4FastList_iterator< OBJECT > __x, typename ManyLists::iterator __it, ManyLists *__lists)
 
 G4ManyFastLists_iterator (const G4ManyFastLists_iterator &__x)
 
_NodeGetNode ()
 
G4FastList< OBJECT > * GetTrackList ()
 
OBJECT * operator* ()
 
const OBJECT * operator* () const
 
OBJECT * operator-> ()
 
const OBJECT * operator-> () const
 
_Self UpdateToNextValidList ()
 
_Selfoperator++ ()
 
_Self operator++ (int)
 
_Selfoperator-- ()
 
_Self operator-- (int)
 
bool operator== (const _Self &__x) const
 
bool operator!= (const _Self &__x) const
 

Public Attributes

G4FastList_iterator< OBJECT > fIterator
 
ManyLists::iterator fCurrentListIt
 
ManyListsfLists
 

Protected Member Functions

void HasReachedEnd ()
 

Detailed Description

template<typename OBJECT>
struct G4ManyFastLists_iterator< OBJECT >

Definition at line 68 of file G4FastList.hh.

Member Typedef Documentation

template<typename OBJECT>
typedef G4FastListNode<OBJECT> G4ManyFastLists_iterator< OBJECT >::_Node

Definition at line 245 of file G4ManyFastLists.hh.

template<typename OBJECT>
typedef G4ManyFastLists_iterator G4ManyFastLists_iterator< OBJECT >::_Self

Definition at line 244 of file G4ManyFastLists.hh.

template<typename OBJECT>
typedef G4FastList<G4FastList<OBJECT> > G4ManyFastLists_iterator< OBJECT >::ManyLists

Definition at line 242 of file G4ManyFastLists.hh.

Constructor & Destructor Documentation

template<typename OBJECT>
G4ManyFastLists_iterator< OBJECT >::G4ManyFastLists_iterator ( G4FastList_iterator< OBJECT >  __x,
typename ManyLists::iterator  __it,
ManyLists __lists 
)
inlineexplicit

Definition at line 259 of file G4ManyFastLists.hh.

261  :
262  fIterator(__x), fCurrentListIt(__it), fLists(__lists)
263  {
264  }
ManyLists::iterator fCurrentListIt
G4FastList_iterator< OBJECT > fIterator
template<typename OBJECT>
G4ManyFastLists_iterator< OBJECT >::G4ManyFastLists_iterator ( const G4ManyFastLists_iterator< OBJECT > &  __x)
inline

Definition at line 266 of file G4ManyFastLists.hh.

266  :
267  fIterator(__x.fIterator),
269  fLists(__x.fLists)
270  {
271  }
ManyLists::iterator fCurrentListIt
G4FastList_iterator< OBJECT > fIterator

Member Function Documentation

template<typename OBJECT>
_Node* G4ManyFastLists_iterator< OBJECT >::GetNode ( )
inline

Definition at line 273 of file G4ManyFastLists.hh.

274  {
275  return fIterator.GetNode();
276  }
G4FastList_iterator< OBJECT > fIterator
template<typename OBJECT>
G4FastList<OBJECT>* G4ManyFastLists_iterator< OBJECT >::GetTrackList ( )
inline

Definition at line 278 of file G4ManyFastLists.hh.

279  {
280  return *fCurrentListIt;
281  }
ManyLists::iterator fCurrentListIt
template<typename OBJECT>
void G4ManyFastLists_iterator< OBJECT >::HasReachedEnd ( )
inlineprotected

Definition at line 373 of file G4ManyFastLists.hh.

374  {
375  if (fLists->empty() == false)
376  {
377  fIterator = (*(fLists->end()--))->end();
378  }
379  else
380  {
382  }
383  }
iterator end()
bool empty() const
G4FastList_iterator< OBJECT > fIterator

Here is the call graph for this function:

template<typename OBJECT>
bool G4ManyFastLists_iterator< OBJECT >::operator!= ( const _Self __x) const
inline

Definition at line 367 of file G4ManyFastLists.hh.

368  {
369  return !(this->operator ==(__x));
370  }
bool operator==(const _Self &__x) const

Here is the call graph for this function:

template<typename OBJECT>
OBJECT* G4ManyFastLists_iterator< OBJECT >::operator* ( )
inline

Definition at line 283 of file G4ManyFastLists.hh.

284  {
285  return *fIterator;
286  }
G4FastList_iterator< OBJECT > fIterator
template<typename OBJECT>
const OBJECT* G4ManyFastLists_iterator< OBJECT >::operator* ( ) const
inline

Definition at line 287 of file G4ManyFastLists.hh.

288  {
289  return *fIterator;
290  }
G4FastList_iterator< OBJECT > fIterator
template<typename OBJECT>
_Self& G4ManyFastLists_iterator< OBJECT >::operator++ ( )

Here is the caller graph for this function:

template<typename OBJECT>
_Self G4ManyFastLists_iterator< OBJECT >::operator++ ( int  )
inline

Definition at line 303 of file G4ManyFastLists.hh.

304  {
305  return operator++();
306  }

Here is the call graph for this function:

template<typename OBJECT>
_Self& G4ManyFastLists_iterator< OBJECT >::operator-- ( )
inline

Definition at line 309 of file G4ManyFastLists.hh.

310  {
311  if (fLists->empty())
312  {
314  return *this;
315  }
316  if (fCurrentListIt == fLists->begin())
317  {
318  if (fIterator == (*fCurrentListIt)->begin())
319  {
321  return *this;
322  }
323  }
324 
325  if (fCurrentListIt == fLists->end())
326  {
327  fCurrentListIt--;
328  fIterator = (*fCurrentListIt)->end();
329  }
330  else if (fIterator == (*fCurrentListIt)->begin())
331  {
332  fCurrentListIt--;
333  fIterator = (*fCurrentListIt)->end();
334  }
335 
336  fIterator--;
337 
338  while (((*fCurrentListIt)->empty() || fIterator.GetNode() == 0
339  || fIterator.GetNode()->GetObject() == 0)
340  && fCurrentListIt != fLists->begin())
341  {
342  fIterator = (*fCurrentListIt)->begin();
343  fCurrentListIt--;
344  fIterator = (*fCurrentListIt)->end();
345  fIterator--;
346  }
347 
348  if (fIterator.GetNode() == 0 && fCurrentListIt == fLists->begin())
349  {
351  return *this;
352  }
353 
354  return *this;
355  }
iterator end()
bool empty() const
ManyLists::iterator fCurrentListIt
G4FastList_iterator< OBJECT > fIterator
iterator begin()

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename OBJECT>
_Self G4ManyFastLists_iterator< OBJECT >::operator-- ( int  )
inline

Definition at line 357 of file G4ManyFastLists.hh.

358  {
359  return operator--();
360  }

Here is the call graph for this function:

template<typename OBJECT>
OBJECT* G4ManyFastLists_iterator< OBJECT >::operator-> ( )
inline

Definition at line 291 of file G4ManyFastLists.hh.

292  {
293  return *fIterator;
294  }
G4FastList_iterator< OBJECT > fIterator
template<typename OBJECT>
const OBJECT* G4ManyFastLists_iterator< OBJECT >::operator-> ( ) const
inline

Definition at line 295 of file G4ManyFastLists.hh.

296  {
297  return *fIterator;
298  }
G4FastList_iterator< OBJECT > fIterator
template<typename OBJECT>
bool G4ManyFastLists_iterator< OBJECT >::operator== ( const _Self __x) const
inline

Definition at line 362 of file G4ManyFastLists.hh.

363  {
364  return (fIterator == __x.fIterator && fCurrentListIt == __x.fCurrentListIt);
365  } // Fast check
ManyLists::iterator fCurrentListIt
G4FastList_iterator< OBJECT > fIterator

Here is the caller graph for this function:

template<typename OBJECT>
_Self G4ManyFastLists_iterator< OBJECT >::UpdateToNextValidList ( )

Member Data Documentation

template<typename OBJECT>
ManyLists::iterator G4ManyFastLists_iterator< OBJECT >::fCurrentListIt

Definition at line 248 of file G4ManyFastLists.hh.

template<typename OBJECT>
G4FastList_iterator<OBJECT> G4ManyFastLists_iterator< OBJECT >::fIterator

Definition at line 247 of file G4ManyFastLists.hh.

template<typename OBJECT>
ManyLists* G4ManyFastLists_iterator< OBJECT >::fLists

Definition at line 249 of file G4ManyFastLists.hh.


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