base::DlistIterator< T, LOCK > Class Template Reference

Iterator to traverse a Dlist. More...

#include <base_dlist.hh>

Inheritance diagram for base::DlistIterator< T, LOCK >:

base::AbstractIterator< T >

List of all members.

Public Member Functions

 DlistIterator (const Dlist< T, LOCK > &dlist)
 ~DlistIterator ()
 operator bool ()
 
Returns:
True while iterator still has more items.

SafePtr< T > Next (void)
 
Returns:
The next item (should never return NULL).


Private Attributes

const Dlist< T, LOCK > & mDlist
Dlink< T > * mNext
Dlink< T > * mNextNext
bool mLocked


Detailed Description

template<typename T, typename LOCK = FastLock>
class base::DlistIterator< T, LOCK >

Iterator to traverse a Dlist.

DlistIterator::operator bool() drives the iteration, not Next().

Designed to tolerate an iteration that unlinks what Next() returns. That is, it can handle the "sawing off your own branch" situation.

Calling Next() inside the iteration block is optional. Calling Next() outside the iteration block is UNDEFINED.


Constructor & Destructor Documentation

template<typename T, typename LOCK = FastLock>
base::DlistIterator< T, LOCK >::DlistIterator ( const Dlist< T, LOCK > &  dlist  )  [inline]

template<typename T, typename LOCK = FastLock>
base::DlistIterator< T, LOCK >::~DlistIterator (  )  [inline]


Member Function Documentation

template<typename T, typename LOCK = FastLock>
base::DlistIterator< T, LOCK >::operator bool (  )  [inline, virtual]

Returns:
True while iterator still has more items.

Implements base::AbstractIterator< T >.

template<typename T, typename LOCK = FastLock>
SafePtr<T> base::DlistIterator< T, LOCK >::Next ( void   )  [inline, virtual]

Returns:
The next item (should never return NULL).

Implements base::AbstractIterator< T >.


Member Data Documentation

template<typename T, typename LOCK = FastLock>
const Dlist<T,LOCK>& base::DlistIterator< T, LOCK >::mDlist [private]

template<typename T, typename LOCK = FastLock>
Dlink<T>* base::DlistIterator< T, LOCK >::mNext [private]

template<typename T, typename LOCK = FastLock>
Dlink<T>* base::DlistIterator< T, LOCK >::mNextNext [private]

template<typename T, typename LOCK = FastLock>
bool base::DlistIterator< T, LOCK >::mLocked [private]


The documentation for this class was generated from the following file: Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:18 2007