BALL  1.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Attributes | Protected Member Functions | List of all members
BALL::BaseFilterIterator< Predicate, IteratorBase > Class Template Reference

#include <BALL/MATHS/LINALG/baseFilterIterator.h>

Public Types

typedef
IteratorBase::container_type 
Container
typedef IteratorBase::value_type DataType
typedef
IteratorBase::difference_type 
Position
typedef IteratorBase::traits_type Traits
typedef IteratorBase::value_type value_type
typedef
IteratorBase::difference_type 
difference_type
typedef IteratorBase::pointer pointer
typedef IteratorBase::reference reference
typedef std::input_iterator_tag iterator_category

Public Member Functions

Constructors and Destructors
 BaseFilterIterator ()
 Default constructor.
 BaseFilterIterator (Predicate p, IteratorBase it)
 Default constructor.
 BaseFilterIterator (const BaseFilterIterator &iterator)
 Copy constructor.
 ~BaseFilterIterator ()
 Destructor.
Assignment
BaseFilterIteratoroperator= (const BaseFilterIterator &iterator)
void swap (BaseFilterIterator &iterator)
 Swap two iterators.
Accessors
void invalidate ()
 Invalidate the iterator.
void setTraits (const Traits &traits)
 Set the traits.
const TraitsgetTraits () const
 Get a constant reference to the traits of this iterator.
TraitsgetTraits ()
 Get a constant reference to the traits of this iterator.
void setPredicate (const Predicate &predicate)
 Set the predicates.
const Predicate & getPredicate () const
 Get a constant reference to the traits of this iterator.
Predicate & getPredicate ()
 Get a constant reference to the traits of this iterator.
const ContainergetContainer () const
 Get a constant pointer to the container of this iterator.
Converters
 operator const Position & () const
reference operator* () const
 Convert an iterator to its Datatype by returning a reference to the current data.
pointer operator-> () const
 Return a pointer to the current data.
Predicates
bool operator== (const BaseFilterIterator &iterator) const
 Equality operator.
bool operator!= (const BaseFilterIterator &iterator) const
 Inequality operator.
bool operator== (const IteratorBase &iterator) const
 Equality operator.
bool operator!= (const IteratorBase &iterator) const
 Inequality operator.
bool isSingular () const
bool isValid () const
bool operator+ () const
 Validity predicate.
bool operator- () const
 Invalidity predicate.

Public Attributes

Predicate predicate_
 The instance of the iterator and the predicate.
IteratorBase iterator_

Protected Member Functions

 BaseFilterIterator (const Container &container)

Detailed Description

template<class Predicate, class IteratorBase>
class BALL::BaseFilterIterator< Predicate, IteratorBase >

Generic Iterator Class. This template class implements the basic behaviour of an iterator. Iterators are basically STL-like iterators. They provide the full STL iterator interface, but also offer additional features.

BaseIterator itself is a base class to the other iterator classes only and should not be used by itself.

Definition at line 17 of file baseFilterIterator.h.

Member Typedef Documentation

template<class Predicate, class IteratorBase>
typedef IteratorBase::container_type BALL::BaseFilterIterator< Predicate, IteratorBase >::Container

Definition at line 27 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::value_type BALL::BaseFilterIterator< Predicate, IteratorBase >::DataType

Definition at line 29 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::difference_type BALL::BaseFilterIterator< Predicate, IteratorBase >::difference_type

Definition at line 37 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef std::input_iterator_tag BALL::BaseFilterIterator< Predicate, IteratorBase >::iterator_category

Definition at line 43 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::pointer BALL::BaseFilterIterator< Predicate, IteratorBase >::pointer

Definition at line 39 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::difference_type BALL::BaseFilterIterator< Predicate, IteratorBase >::Position

Definition at line 31 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::reference BALL::BaseFilterIterator< Predicate, IteratorBase >::reference

Definition at line 41 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::traits_type BALL::BaseFilterIterator< Predicate, IteratorBase >::Traits

Definition at line 33 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
typedef IteratorBase::value_type BALL::BaseFilterIterator< Predicate, IteratorBase >::value_type

Definition at line 35 of file baseFilterIterator.h.

Constructor & Destructor Documentation

template<class Predicate, class IteratorBase>
BALL::BaseFilterIterator< Predicate, IteratorBase >::BaseFilterIterator ( )
inline

Default constructor.

Definition at line 56 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
BALL::BaseFilterIterator< Predicate, IteratorBase >::BaseFilterIterator ( Predicate  p,
IteratorBase  it 
)
inline

Default constructor.

Definition at line 58 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
BALL::BaseFilterIterator< Predicate, IteratorBase >::BaseFilterIterator ( const BaseFilterIterator< Predicate, IteratorBase > &  iterator)
inline

Copy constructor.

Definition at line 64 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
BALL::BaseFilterIterator< Predicate, IteratorBase >::~BaseFilterIterator ( )
inline

Destructor.

Definition at line 70 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
BALL::BaseFilterIterator< Predicate, IteratorBase >::BaseFilterIterator ( const Container container)
inlineprotected

Constructor. Protected to allow instantiation and use in derived classes only.

Definition at line 181 of file baseFilterIterator.h.

Member Function Documentation

template<class Predicate, class IteratorBase>
const Container* BALL::BaseFilterIterator< Predicate, IteratorBase >::getContainer ( ) const
inline

Get a constant pointer to the container of this iterator.

Definition at line 122 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
const Predicate& BALL::BaseFilterIterator< Predicate, IteratorBase >::getPredicate ( ) const
inline

Get a constant reference to the traits of this iterator.

Definition at line 116 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
Predicate& BALL::BaseFilterIterator< Predicate, IteratorBase >::getPredicate ( )
inline

Get a constant reference to the traits of this iterator.

Definition at line 119 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
const Traits& BALL::BaseFilterIterator< Predicate, IteratorBase >::getTraits ( ) const
inline

Get a constant reference to the traits of this iterator.

Definition at line 107 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
Traits& BALL::BaseFilterIterator< Predicate, IteratorBase >::getTraits ( )
inline

Get a constant reference to the traits of this iterator.

Definition at line 110 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
void BALL::BaseFilterIterator< Predicate, IteratorBase >::invalidate ( )
inline

Invalidate the iterator.

Definition at line 101 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::isSingular ( ) const
inline

Singularity predicate. This method returns true if the iterator is singular, i.e., not associated with a container.

Definition at line 162 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::isValid ( ) const
inline

Validity predicate

Returns
true if the iterator is valid (pointing at an element in a container)

Definition at line 167 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
BALL::BaseFilterIterator< Predicate, IteratorBase >::operator const Position & ( ) const
inline

Convert an iterator to Position. This method returns the position of the iterator. Position is a template within this context.

Definition at line 133 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::operator!= ( const BaseFilterIterator< Predicate, IteratorBase > &  iterator) const
inline

Inequality operator.

Definition at line 150 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::operator!= ( const IteratorBase &  iterator) const
inline

Inequality operator.

Definition at line 156 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
reference BALL::BaseFilterIterator< Predicate, IteratorBase >::operator* ( ) const
inline
template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::operator+ ( ) const
inline

Validity predicate.

Reimplemented in BALL::ConstRandomAccessFilterIterator< Predicate, IteratorRandomAccess >.

Definition at line 170 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::operator- ( ) const
inline

Invalidity predicate.

Reimplemented in BALL::ConstRandomAccessFilterIterator< Predicate, IteratorRandomAccess >.

Definition at line 173 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
pointer BALL::BaseFilterIterator< Predicate, IteratorBase >::operator-> ( ) const
inline
template<class Predicate, class IteratorBase>
BaseFilterIterator& BALL::BaseFilterIterator< Predicate, IteratorBase >::operator= ( const BaseFilterIterator< Predicate, IteratorBase > &  iterator)
inline

Assignment operator. Assigns the contents of an iterator to another iterator.

Parameters
iteratorthe iterator to be copied

Definition at line 81 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::operator== ( const BaseFilterIterator< Predicate, IteratorBase > &  iterator) const
inline

Equality operator.

Definition at line 147 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
bool BALL::BaseFilterIterator< Predicate, IteratorBase >::operator== ( const IteratorBase &  iterator) const
inline

Equality operator.

Definition at line 153 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
void BALL::BaseFilterIterator< Predicate, IteratorBase >::setPredicate ( const Predicate &  predicate)
inline

Set the predicates.

Definition at line 113 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
void BALL::BaseFilterIterator< Predicate, IteratorBase >::setTraits ( const Traits traits)
inline

Set the traits.

Definition at line 104 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
void BALL::BaseFilterIterator< Predicate, IteratorBase >::swap ( BaseFilterIterator< Predicate, IteratorBase > &  iterator)
inline

Swap two iterators.

Definition at line 89 of file baseFilterIterator.h.

Member Data Documentation

template<class Predicate, class IteratorBase>
IteratorBase BALL::BaseFilterIterator< Predicate, IteratorBase >::iterator_

Definition at line 24 of file baseFilterIterator.h.

template<class Predicate, class IteratorBase>
Predicate BALL::BaseFilterIterator< Predicate, IteratorBase >::predicate_

The instance of the iterator and the predicate.

Definition at line 23 of file baseFilterIterator.h.