dune-common  2.4.1-rc2
Classes | Public Types | Public Member Functions | List of all members
Dune::CollectiveIterator< T, A > Class Template Reference

A collective iterator for moving over the remote indices for all processes collectively. More...

#include <dune/common/parallel/remoteindices.hh>

Classes

class  iterator
 Iterator over the valid underlying iterators. More...
 

Public Types

typedef std::map< int, std::pair< RemoteIndexList *, RemoteIndexList * > > RemoteIndexMap
 The type of the map from rank to remote index list. More...
 

Public Member Functions

 CollectiveIterator (const RemoteIndexMap &map_, bool send)
 Constructor. More...
 
void advance (const GlobalIndex &global)
 Advances all underlying iterators. More...
 
void advance (const GlobalIndex &global, const Attribute &attribute)
 Advances all underlying iterators. More...
 
CollectiveIteratoroperator++ ()
 
bool empty ()
 Checks whether there are still iterators in the map. More...
 
iterator begin ()
 
iterator end ()
 

Detailed Description

template<class T, class A>
class Dune::CollectiveIterator< T, A >

A collective iterator for moving over the remote indices for all processes collectively.

Member Typedef Documentation

template<class T, class A>
typedef std::map<int, std::pair<RemoteIndexList*,RemoteIndexList*> > Dune::CollectiveIterator< T, A >::RemoteIndexMap

The type of the map from rank to remote index list.

Constructor & Destructor Documentation

template<typename T , typename A >
Dune::CollectiveIterator< T, A >::CollectiveIterator ( const RemoteIndexMap map_,
bool  send 
)
inline

Constructor.

Parameters
map_The map of the remote indices.
sendTrue if we want iterate over the remote indices used for sending.

References Dune::SLList< T, A >::begin(), and Dune::SLList< T, A >::end().

Member Function Documentation

template<typename T , typename A >
void Dune::CollectiveIterator< T, A >::advance ( const GlobalIndex &  global)
inline

Advances all underlying iterators.

All iterators are advanced until they point to a remote index whose global id is bigger or equal to global. Iterators pointing to their end are removed.

Parameters
globalThe index we search for.

Referenced by Dune::IndicesSyncer< T >::Iterators::isAtEnd().

template<typename T , typename A >
void Dune::CollectiveIterator< T, A >::advance ( const GlobalIndex &  global,
const Attribute &  attribute 
)
inline

Advances all underlying iterators.

All iterators are advanced until they point to a remote index whose global id is bigger or equal to global. Iterators pointing to their end are removed.

Parameters
globalThe index we search for.
attributeThe attribute we search for.
template<typename T , typename A >
CollectiveIterator< T, A >::iterator Dune::CollectiveIterator< T, A >::begin ( )
inline
template<typename T , typename A >
bool Dune::CollectiveIterator< T, A >::empty ( )
inline

Checks whether there are still iterators in the map.

Referenced by Dune::IndicesSyncer< T >::Iterators::isAtEnd().

template<typename T , typename A >
CollectiveIterator< T, A >::iterator Dune::CollectiveIterator< T, A >::end ( )
inline
template<typename T , typename A >
CollectiveIterator< T, A > & Dune::CollectiveIterator< T, A >::operator++ ( )
inline

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