A class used to combine multiple iterators. More...
#include <MultiIterator.h>

Public Types | |
| using | difference_type = ptrdiff_t |
| using | iterator_category = std::random_access_iterator_tag |
| using | MeshIteratorPtr = std::unique_ptr< MeshIteratorBase > |
| using | pointer = const AMP::Mesh::MeshElement * |
| using | reference = const AMP::Mesh::MeshElement & |
| enum class | Type : uint8_t { Forward = 1 , Bidirectional = 2 , RandomAccess = 3 } |
| Enum for the type of iterator supported. More... | |
| using | value_type = AMP::Mesh::MeshElement |
Public Member Functions | |
| MeshIterator | begin () const override |
| Return an iterator to the begining. | |
| std::string | className () const override |
| Return the class name. | |
| std::unique_ptr< MeshIteratorBase > | clone () const override |
| Clone the iterator. | |
| size_t | empty () const |
| Return the number of elements in the iterator. | |
| MeshIteratorEnd | end () const |
| Return an iterator to the end (use tombstone class) | |
| uint64_t | getID () const |
| Return a unique hash id. | |
| MultiIterator () | |
| Empty MultiIterator constructor. | |
| MultiIterator (const MultiIterator &)=delete | |
| Copy constructor. | |
| MultiIterator (int64_t fid, AMP::IO::RestartManager *manager) | |
| MultiIterator (MultiIterator &&) | |
| Move constructor. | |
| MultiIterator (std::vector< MeshIterator > iterators, size_t pos=0) | |
| Default MultiIterator constructor. | |
| MultiIterator (std::vector< MeshIteratorBase * > &&iterators, size_t pos=0) | |
| bool | operator!= (const MeshIteratorBase &rhs) const override |
| Check if two iterators are not equal. | |
| virtual bool | operator!= (const MeshIteratorBase &rhs) const=0 |
| Check if two iterators are not equal. | |
| bool | operator!= (MeshIteratorEnd) const |
| Check if two iterators are not equal. | |
| const MeshElement & | operator* () const |
| Dereference the iterator. | |
| MeshIteratorBase & | operator++ () override |
| MeshIteratorBase & | operator+= (int N) override |
| MeshIteratorBase & | operator-- () override |
| const MeshElement * | operator-> () const |
| Dereference the iterator. | |
| MultiIterator & | operator= (const MultiIterator &)=delete |
| Assignment operator. | |
| MultiIterator & | operator= (MultiIterator &&) |
| Move operator. | |
| bool | operator== (const MeshIteratorBase &rhs) const override |
| Check if two iterators are equal. | |
| virtual bool | operator== (const MeshIteratorBase &rhs) const=0 |
| Check if two iterators are equal. | |
| bool | operator== (MeshIteratorEnd) const |
| Check if two iterators are equal. | |
| size_t | pos () const |
| Return the current position (from the beginning) in the iterator. | |
| void | registerChildObjects (AMP::IO::RestartManager *manager) const override |
| void | setPos (size_t) override |
| Set the position in the iterator. | |
| size_t | size () const |
| Return the number of elements in the iterator. | |
| Type | type () const |
| Return the iterator type. | |
| void | writeRestart (int64_t fid) const override |
| virtual | ~MultiIterator () |
| Deconstructor. | |
Protected Attributes | |
| const MeshElement * | d_element = nullptr |
| Pointer to the current element. | |
| size_t | d_iteratorNum = 0 |
| std::vector< MeshIteratorBase * > | d_iterators |
| Type | d_iteratorType = Type::RandomAccess |
| Type of iterator. | |
| size_t | d_localPos = 0 |
| size_t | d_pos = 0 |
| Position of the iterator. | |
| size_t | d_size = 0 |
| Size of the iterator. | |
| uint32_t | d_typeHash = 0 |
| Unique hash for the type. | |
Friends | |
| class | MultiMesh |
A class used to combine multiple iterators.
This class provides routines for iterating over a mesh. More specifically, this class combines multiple iterators into one. This is primarily needed for MultiMesh, but may be used for other applicaitons.
Definition at line 22 of file MultiIterator.h.
|
inherited |
Definition at line 45 of file MeshIterator.h.
|
inherited |
Definition at line 43 of file MeshIterator.h.
| using AMP::Mesh::MultiIterator::MeshIteratorPtr = std::unique_ptr<MeshIteratorBase> |
Definition at line 25 of file MultiIterator.h.
|
inherited |
Definition at line 46 of file MeshIterator.h.
|
inherited |
Definition at line 47 of file MeshIterator.h.
|
inherited |
Definition at line 44 of file MeshIterator.h.
|
stronginherited |
Enum for the type of iterator supported.
| Enumerator | |
|---|---|
| Forward | |
| Bidirectional | |
| RandomAccess | |
Definition at line 52 of file MeshIterator.h.
| AMP::Mesh::MultiIterator::MultiIterator | ( | ) |
Empty MultiIterator constructor.
|
explicit |
Default MultiIterator constructor.
|
virtual |
Deconstructor.
| AMP::Mesh::MultiIterator::MultiIterator | ( | MultiIterator && | ) |
Move constructor.
|
delete |
Copy constructor.
| AMP::Mesh::MultiIterator::MultiIterator | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
|
explicit |
|
overridevirtual |
Return an iterator to the begining.
Implements AMP::Mesh::MeshIteratorBase.
|
inlineoverridevirtual |
Return the class name.
Implements AMP::Mesh::MeshIteratorBase.
Definition at line 51 of file MultiIterator.h.
|
overridevirtual |
Clone the iterator.
Implements AMP::Mesh::MeshIteratorBase.
|
inlineinherited |
Return the number of elements in the iterator.
Definition at line 63 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_size.
|
inlineinherited |
Return an iterator to the end (use tombstone class)
Definition at line 78 of file MeshIterator.h.
|
inlineinherited |
Return a unique hash id.
Definition at line 60 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_typeHash.
|
overridevirtual |
Check if two iterators are not equal.
Implements AMP::Mesh::MeshIteratorBase.
|
virtual |
Check if two iterators are not equal.
Implements AMP::Mesh::MeshIteratorBase.
|
inline |
Check if two iterators are not equal.
Definition at line 84 of file MeshIterator.h.
|
inlineinherited |
Dereference the iterator.
Definition at line 75 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_element.
|
overridevirtual |
Implements AMP::Mesh::MeshIteratorBase.
|
overridevirtual |
Implements AMP::Mesh::MeshIteratorBase.
|
overridevirtual |
Implements AMP::Mesh::MeshIteratorBase.
|
inlineinherited |
Dereference the iterator.
Definition at line 72 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_element.
|
delete |
Assignment operator.
| MultiIterator & AMP::Mesh::MultiIterator::operator= | ( | MultiIterator && | ) |
Move operator.
|
overridevirtual |
Check if two iterators are equal.
Implements AMP::Mesh::MeshIteratorBase.
|
virtual |
Check if two iterators are equal.
Implements AMP::Mesh::MeshIteratorBase.
|
inline |
Check if two iterators are equal.
Definition at line 81 of file MeshIterator.h.
|
inlineinherited |
Return the current position (from the beginning) in the iterator.
Definition at line 69 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_pos.
|
overridevirtual |
Implements AMP::Mesh::MeshIteratorBase.
|
overridevirtual |
Set the position in the iterator.
Implements AMP::Mesh::MeshIteratorBase.
|
inlineinherited |
Return the number of elements in the iterator.
Definition at line 66 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_size.
|
inlineinherited |
Return the iterator type.
Definition at line 57 of file MeshIterator.h.
References AMP::Mesh::MeshIteratorBase::d_iteratorType.
|
overridevirtual |
Implements AMP::Mesh::MeshIteratorBase.
|
friend |
Definition at line 92 of file MultiIterator.h.
|
protectedinherited |
Pointer to the current element.
Definition at line 137 of file MeshIterator.h.
Referenced by AMP::Mesh::MeshIteratorBase::operator*(), and AMP::Mesh::MeshIteratorBase::operator->().
|
protected |
Definition at line 98 of file MultiIterator.h.
|
protected |
Definition at line 99 of file MultiIterator.h.
|
protectedinherited |
Type of iterator.
Definition at line 133 of file MeshIterator.h.
Referenced by AMP::Mesh::MeshIteratorBase::type().
|
protected |
Definition at line 97 of file MultiIterator.h.
|
protectedinherited |
Position of the iterator.
Definition at line 136 of file MeshIterator.h.
Referenced by AMP::Mesh::MeshIteratorBase::operator!=(), AMP::Mesh::MeshIteratorBase::operator==(), and AMP::Mesh::MeshIteratorBase::pos().
|
protectedinherited |
Size of the iterator.
Definition at line 135 of file MeshIterator.h.
Referenced by AMP::Mesh::MeshIteratorBase::empty(), AMP::Mesh::MeshIteratorBase::operator!=(), AMP::Mesh::MeshIteratorBase::operator==(), and AMP::Mesh::MeshIteratorBase::size().
|
protectedinherited |
Unique hash for the type.
Definition at line 134 of file MeshIterator.h.
Referenced by AMP::Mesh::MeshIteratorBase::getID().
|
Advanced Multi-Physics (AMP) Oak Ridge National Laboratory Idaho National Laboratory Los Alamos National Laboratory |
This page automatically produced from the source code by Last updated: Tue Mar 10 2026 13:06:43. Comments on this page |