COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
ComponentIterator< T > Struct Template Reference

ComponentIterator class, can linearize a complete tree of components More...

#include <Component.hpp>

Inherits iterator_facade< ComponentIterator< T >, T, boost::bidirectional_traversal_tag, T & >.

Public Types

typedef BaseT::difference_type difference_type
 

Public Member Functions

 ComponentIterator (const std::vector< boost::shared_ptr< T > > &vec, const Uint startPosition)
 
T & dereference () const
 dereferencing More...
 
Handle< T > get () const
 Get a handle to the referenced object. More...
 
ComponentIterator< T > & base ()
 
const ComponentIterator< T > & base () const
 Compatibility with boost filtered_iterator interface. More...
 

Private Types

typedef boost::iterator_facade< ComponentIterator< T >, T, boost::random_access_traversal_tag, T & > BaseT
 

Private Member Functions

template<typename T2 >
bool equal (ComponentIterator< T2 > const &other) const
 
void increment ()
 
void decrement ()
 
void advance (const difference_type n)
 
template<typename T2 >
difference_type distance_to (ComponentIterator< T2 > const &other) const
 

Private Attributes

std::vector< boost::shared_ptr< T > > m_vec
 
Uint m_position
 

Friends

class boost::iterator_core_access
 
template<class >
class ComponentIterator
 

Detailed Description

template<class T>
struct cf3::common::ComponentIterator< T >

ComponentIterator class, can linearize a complete tree of components

The ComponentIterator class is the type for

Definition at line 39 of file Component.hpp.

Member Typedef Documentation

typedef boost::iterator_facade<ComponentIterator<T>, T, boost::random_access_traversal_tag, T&> BaseT
private

Definition at line 43 of file ComponentIterator.hpp.

typedef BaseT::difference_type difference_type

Definition at line 46 of file ComponentIterator.hpp.

Constructor & Destructor Documentation

ComponentIterator ( const std::vector< boost::shared_ptr< T > > &  vec,
const Uint  startPosition 
)
inlineexplicit

Construct an iterator over the given set of components. If endIterator is true, the iterator is intialized at the end of the range, otherwise at the beginning.

Definition at line 51 of file ComponentIterator.hpp.

Member Function Documentation

void advance ( const difference_type  n)
inlineprivate

Definition at line 74 of file ComponentIterator.hpp.

ComponentIterator<T>& base ( )
inline

Compatibility with boost filtered_iterator interface, so base() can be used transparently on all ranges

Definition at line 90 of file ComponentIterator.hpp.

const ComponentIterator<T>& base ( ) const
inline

Compatibility with boost filtered_iterator interface.

Definition at line 92 of file ComponentIterator.hpp.

void decrement ( )
inlineprivate

Definition at line 68 of file ComponentIterator.hpp.

T& dereference ( ) const
inline

dereferencing

Definition at line 85 of file ComponentIterator.hpp.

difference_type distance_to ( ComponentIterator< T2 > const &  other) const
inlineprivate

Definition at line 77 of file ComponentIterator.hpp.

bool equal ( ComponentIterator< T2 > const &  other) const
inlineprivate

Definition at line 60 of file ComponentIterator.hpp.

Handle<T> get ( ) const
inline

Get a handle to the referenced object.

Definition at line 87 of file ComponentIterator.hpp.

void increment ( )
inlineprivate

Definition at line 62 of file ComponentIterator.hpp.

Friends And Related Function Documentation

friend class boost::iterator_core_access
friend

Definition at line 56 of file ComponentIterator.hpp.

friend class ComponentIterator
friend

Definition at line 57 of file ComponentIterator.hpp.

Member Data Documentation

Uint m_position
private

Definition at line 96 of file ComponentIterator.hpp.

std::vector<boost::shared_ptr<T> > m_vec
private

Definition at line 95 of file ComponentIterator.hpp.


The documentation for this struct was generated from the following files:
Send comments to:
COOLFluiD Web Admin