Public Types | Public Member Functions | Protected Attributes | List of all members
ConstCirculator< ContainerType > Class Template Reference

Walks over a container as if it were circular. The container must have the following members defined: More...

Inheritance diagram for ConstCirculator< ContainerType >:
Inheritance graph
[legend]
Collaboration diagram for ConstCirculator< ContainerType >:
Collaboration graph
[legend]

Public Types

typedef ContainerType::value_type value_type
 Type of values ContainerType contains. More...
 
typedef ContainerType::size_type size_type
 The type that can represent the size of ContainerType. More...
 
typedef ContainerType::difference_type difference_type
 The type that can represent the difference between any two. More...
 
typedef ContainerType::const_iterator const_iterator
 Random access iterator for traversing ContainerType. More...
 
typedef ContainerType::const_reference const_reference
 Type that can be used for storing into. More...
 
- Public Types inherited from CirculatorBase
enum  direction { NONE, CLOCKWISE, ANTICLOCKWISE }
 Direction type enumeration. More...
 

Public Member Functions

 ConstCirculator ()
 Construct null. More...
 
 ConstCirculator (const ContainerType &container)
 Construct from a container. More...
 
 ConstCirculator (const const_iterator &begin, const const_iterator &end)
 Construct from two iterators. More...
 
 ConstCirculator (const ConstCirculator< ContainerType > &)
 Construct as copy. More...
 
 ~ConstCirculator ()
 Destructor. More...
 
size_type size () const
 Return the range of the iterator. More...
 
bool circulate (const CirculatorBase::direction dir=NONE)
 Circulate around the list in the given direction. More...
 
void setFulcrumToIterator ()
 Set the fulcrum to the current position of the iterator. More...
 
void setIteratorToFulcrum ()
 Set the iterator to the current position of the fulcrum. More...
 
difference_type nRotations () const
 Return the distance between the iterator and the fulcrum. This is. More...
 
const_reference next () const
 Dereference the next iterator and return. More...
 
const_reference prev () const
 Dereference the previous iterator and return. More...
 
void operator= (const ConstCirculator< ContainerType > &)
 Assignment operator for circulators that operate on the same. More...
 
ConstCirculator< ContainerType > & operator++ ()
 Prefix increment. Increments the iterator. More...
 
ConstCirculator< ContainerType > operator++ (int)
 Postfix increment. Increments the iterator. More...
 
ConstCirculator< ContainerType > & operator-- ()
 Prefix decrement. Decrements the iterator. More...
 
ConstCirculator< ContainerType > operator-- (int)
 Postfix decrement. Decrements the iterator. More...
 
bool operator== (const ConstCirculator< ContainerType > &c) const
 Check for equality of this iterator with another iterator that. More...
 
bool operator!= (const ConstCirculator< ContainerType > &c) const
 Check for inequality of this iterator with another iterator that. More...
 
const_reference operator* () const
 Dereference the iterator and return. More...
 
const_reference operator() () const
 Dereference the iterator and return. More...
 
difference_type operator- (const ConstCirculator< ContainerType > &c) const
 Return the difference between this iterator and another iterator. More...
 
- Public Member Functions inherited from CirculatorBase
 CirculatorBase ()
 Construct null. More...
 

Protected Attributes

ContainerType::const_iterator begin_
 Iterator pointing to the beginning of the container. More...
 
ContainerType::const_iterator end_
 Iterator pointing to the end of the container. More...
 
ContainerType::const_iterator iter_
 Iterator. More...
 
ContainerType::const_iterator fulcrum_
 Iterator holding the location of the fulcrum (start and end) of. More...
 

Detailed Description

template<class ContainerType>
class Foam::ConstCirculator< ContainerType >

Walks over a container as if it were circular. The container must have the following members defined:

- value_type

Examples:

face f(identity(5));
// Construct circulator from the face
ConstCirculator<face> circ(f);
// First check that the circulator has a size to iterate over.
// Then circulate around the list starting and finishing at the fulcrum.
if (circ.size()) do
{
Info<< "Iterate forwards over face : " << circ() << endl;
} while (circ.circulate(CirculatorBase::CLOCKWISE));
face f(identity(5));
ConstCirculator<face> circClockwise(f);
ConstCirculator<face> circAnticlockwise(f);
if (circClockwise.size() && circAnticlockwise.size()) do
{
Info<< "Iterate forward over face :" << circClockwise() << endl;
Info<< "Iterate backward over face:" << circAnticlockwise() << endl;
}
while
(
circClockwise.circulate(CirculatorBase::CLOCKWISE),
circAnticlockwise.circulate(CirculatorBase::ANTICLOCKWISE)
);
Source files

Definition at line 91 of file ConstCirculator.H.

Member Typedef Documentation

typedef ContainerType::value_type value_type

Type of values ContainerType contains.

Definition at line 120 of file ConstCirculator.H.

typedef ContainerType::size_type size_type

The type that can represent the size of ContainerType.

Definition at line 123 of file ConstCirculator.H.

typedef ContainerType::difference_type difference_type

The type that can represent the difference between any two.

iterator objects.

Definition at line 127 of file ConstCirculator.H.

typedef ContainerType::const_iterator const_iterator

Random access iterator for traversing ContainerType.

Definition at line 130 of file ConstCirculator.H.

typedef ContainerType::const_reference const_reference

Type that can be used for storing into.

const ContainerType::value_type objects.

Definition at line 134 of file ConstCirculator.H.

Constructor & Destructor Documentation

ConstCirculator ( )
inline

Construct null.

Definition at line 29 of file ConstCirculatorI.H.

Referenced by ConstCirculator< ContainerType >::ConstCirculator().

Here is the caller graph for this function:

ConstCirculator ( const ContainerType &  container)
inlineexplicit

Construct from a container.

Definition at line 41 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::ConstCirculator().

Here is the call graph for this function:

ConstCirculator ( const const_iterator begin,
const const_iterator end 
)
inline

Construct from two iterators.

Definition at line 55 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::ConstCirculator().

Here is the call graph for this function:

ConstCirculator ( const ConstCirculator< ContainerType > &  rhs)
inline

Construct as copy.

Definition at line 70 of file ConstCirculatorI.H.

Destructor.

Definition at line 85 of file ConstCirculatorI.H.

Member Function Documentation

Foam::ConstCirculator< ContainerType >::size_type size ( ) const
inline

Return the range of the iterator.

Definition at line 93 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::begin_, ConstCirculator< ContainerType >::circulate(), and ConstCirculator< ContainerType >::end_.

Here is the call graph for this function:

bool circulate ( const CirculatorBase::direction  dir = NONE)
inline
void setFulcrumToIterator ( )
inline

Set the fulcrum to the current position of the iterator.

Definition at line 119 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::fulcrum_, and ConstCirculator< ContainerType >::iter_.

Referenced by face::compare(), and processorPolyPatch::matchFace().

Here is the caller graph for this function:

void setIteratorToFulcrum ( )
inline

Set the iterator to the current position of the fulcrum.

Definition at line 126 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::fulcrum_, and ConstCirculator< ContainerType >::iter_.

Referenced by face::compare(), and processorPolyPatch::matchFace().

Here is the caller graph for this function:

Foam::ConstCirculator< ContainerType >::difference_type nRotations ( ) const
inline

Return the distance between the iterator and the fulcrum. This is.

equivalent to the number of rotations of the circulator.

Definition at line 134 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::fulcrum_, and ConstCirculator< ContainerType >::iter_.

Referenced by processorPolyPatch::matchFace().

Here is the caller graph for this function:

Foam::ConstCirculator< ContainerType >::const_reference next ( ) const
inline

Dereference the next iterator and return.

Definition at line 142 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::begin_, ConstCirculator< ContainerType >::end_, and ConstCirculator< ContainerType >::iter_.

Foam::ConstCirculator< ContainerType >::const_reference prev ( ) const
inline

Dereference the previous iterator and return.

Definition at line 155 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::begin_, ConstCirculator< ContainerType >::end_, and ConstCirculator< ContainerType >::iter_.

void operator= ( const ConstCirculator< ContainerType > &  rhs)
inline

Assignment operator for circulators that operate on the same.

container type

Definition at line 170 of file ConstCirculatorI.H.

References Foam::abort(), ConstCirculator< ContainerType >::begin_, ConstCirculator< ContainerType >::end_, Foam::FatalError, FatalErrorIn, ConstCirculator< ContainerType >::fulcrum_, and ConstCirculator< ContainerType >::iter_.

Here is the call graph for this function:

Foam::ConstCirculator< ContainerType > & operator++ ( )
inline

Prefix increment. Increments the iterator.

Sets the iterator to the beginning of the container if it reaches the end

Definition at line 194 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::begin_, ConstCirculator< ContainerType >::end_, and ConstCirculator< ContainerType >::iter_.

Referenced by ConstCirculator< ContainerType >::circulate().

Here is the caller graph for this function:

Foam::ConstCirculator< ContainerType > operator++ ( int  )
inline

Postfix increment. Increments the iterator.

Sets the iterator to the beginning of the container if it reaches the end

Definition at line 208 of file ConstCirculatorI.H.

Foam::ConstCirculator< ContainerType > & operator-- ( )
inline

Prefix decrement. Decrements the iterator.

Sets the iterator to the end of the container if it reaches the beginning

Definition at line 218 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::begin_, ConstCirculator< ContainerType >::end_, and ConstCirculator< ContainerType >::iter_.

Referenced by ConstCirculator< ContainerType >::circulate().

Here is the caller graph for this function:

Foam::ConstCirculator< ContainerType > operator-- ( int  )
inline

Postfix decrement. Decrements the iterator.

Sets the iterator to the end of the container if it reaches the beginning

Definition at line 232 of file ConstCirculatorI.H.

bool operator== ( const ConstCirculator< ContainerType > &  c) const
inline

Check for equality of this iterator with another iterator that.

operate on the same container type

Definition at line 242 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::begin_, Foam::constant::universal::c, ConstCirculator< ContainerType >::end_, ConstCirculator< ContainerType >::fulcrum_, and ConstCirculator< ContainerType >::iter_.

bool operator!= ( const ConstCirculator< ContainerType > &  c) const
inline

Check for inequality of this iterator with another iterator that.

operate on the same container type

Definition at line 258 of file ConstCirculatorI.H.

References Foam::constant::universal::c.

Foam::ConstCirculator< ContainerType >::const_reference operator* ( ) const
inline

Dereference the iterator and return.

Definition at line 268 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::iter_.

Referenced by ConstCirculator< ContainerType >::operator()().

Here is the caller graph for this function:

Foam::ConstCirculator< ContainerType >::const_reference operator() ( ) const
inline

Dereference the iterator and return.

Definition at line 276 of file ConstCirculatorI.H.

References ConstCirculator< ContainerType >::operator*().

Here is the call graph for this function:

Foam::ConstCirculator< ContainerType >::difference_type operator- ( const ConstCirculator< ContainerType > &  c) const
inline

Return the difference between this iterator and another iterator.

that operate on the same container type

Definition at line 285 of file ConstCirculatorI.H.

References Foam::constant::universal::c, and ConstCirculator< ContainerType >::iter_.

Member Data Documentation

ContainerType::const_iterator begin_
protected
ContainerType::const_iterator end_
protected
ContainerType::const_iterator iter_
protected
ContainerType::const_iterator fulcrum_
protected

Iterator holding the location of the fulcrum (start and end) of.

the container. Used to decide when the iterator should stop circulating over the container

Definition at line 112 of file ConstCirculator.H.

Referenced by ConstCirculator< ContainerType >::circulate(), ConstCirculator< ContainerType >::nRotations(), ConstCirculator< ContainerType >::operator=(), ConstCirculator< ContainerType >::operator==(), ConstCirculator< ContainerType >::setFulcrumToIterator(), and ConstCirculator< ContainerType >::setIteratorToFulcrum().


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