Honeycomb  0.1
Component-Model Framework
Public Types | Public Member Functions | Friends | List of all members
honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ > Class Template Reference

Iterator. More...

#include <List.h>

Public Types

typedef std::bidirectional_iterator_tag iterator_category
 
typedef T_ value_type
 
typedef sdt difference_type
 
typedef T_ * pointer
 
typedef T_ & reference
 

Public Member Functions

 Iter_ ()
 
 Iter_ (const List &list, bool end)
 
 Iter_ (const Iter_ &it)
 
 ~Iter_ ()
 
Iter_operator= (const Iter_ &it)
 Copy iterator, must reference copied cursor. More...
 
Iter_operator++ ()
 
Iter_operator-- ()
 
Iter_ operator++ (int)
 
Iter_ operator-- (int)
 
bool operator== (const Iter_ &rhs) const
 
bool operator!= (const Iter_ &rhs) const
 
reference operator* () const
 
pointer operator-> () const
 
bool valid () const
 Returns true if iterator points to valid element that has not been deleted. More...
 

Friends

class List
 

Detailed Description

template<class T, class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_>
class honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >

Iterator.

An iterator instance is not thread-safe; it can't be shared between threads without a lock.
Each iterator needs a thread-local node reference, so the number of iterator instances allowed is limited by iterMax.

Member Typedef Documentation

template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
typedef sdt honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::difference_type
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
typedef std::bidirectional_iterator_tag honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::iterator_category
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
typedef T_* honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::pointer
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
typedef T_& honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::reference
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
typedef T_ honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::value_type

Constructor & Destructor Documentation

template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::Iter_ ( )
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::Iter_ ( const List list,
bool  end 
)
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::Iter_ ( const Iter_< T_ > &  it)
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::~Iter_ ( )
inline

Member Function Documentation

template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
bool honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator!= ( const Iter_< T_ > &  rhs) const
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
reference honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator* ( ) const
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
Iter_& honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator++ ( )
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
Iter_ honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator++ ( int  )
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
Iter_& honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator-- ( )
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
Iter_ honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator-- ( int  )
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
pointer honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator-> ( ) const
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
Iter_& honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator= ( const Iter_< T_ > &  it)
inline

Copy iterator, must reference copied cursor.

template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
bool honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::operator== ( const Iter_< T_ > &  rhs) const
inline
template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
bool honey::lockfree::List< T, Alloc_, Backoff, iterMax >::Iter_< T_ >::valid ( ) const
inline

Returns true if iterator points to valid element that has not been deleted.

Friends And Related Function Documentation

template<class T , class Alloc_ = SmallAllocator<T>, class Backoff = Backoff, uint8 iterMax = 2>
template<class T_ >
friend class List
friend

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