MADARA
3.1.8
|
Iterates through an ExpressionTree in post-order. More...
#include <IteratorImpl.h>
Public Types | |
typedef int | difference_type |
typedef ::std::forward_iterator_tag | iterator_category |
typedef int * | pointer |
typedef int & | reference |
typedef madara::knowledge::KnowledgeRecord | value_type |
Public Member Functions | |
PostOrderIteratorImpl (const ExpressionTree &tree, bool end_iter=false) | |
Construct an PostOrderIteratorImpl. More... | |
virtual | ~PostOrderIteratorImpl (void) |
Dtor. More... | |
virtual ExpressionTreeIteratorImpl * | clone (void) |
Method for cloning an impl. Necessary for post increments. More... | |
virtual bool | operator!= (const ExpressionTreeIteratorImpl &lhs) const |
Nonequality operator. More... | |
virtual ExpressionTree | operator* (void) |
Dereference operator returns a reference to the item contained at the current position. More... | |
virtual const ExpressionTree | operator* (void) const |
Returns a const reference to the item contained at the current position. More... | |
virtual void | operator++ (void) |
Increment operator (used for both pre- and post-increment). More... | |
virtual bool | operator== (const ExpressionTreeIteratorImpl &rhs) const |
Equality operator. More... | |
Protected Attributes | |
const ExpressionTree & | tree_ |
The tree we are iterating over. More... | |
Private Attributes | |
madara::utility::LStack< ExpressionTree > | stack_ |
Our current position in the iteration. More... | |
Friends | |
class | ExpressionTreeIterator |
class | utility::Refcounter< ExpressionTreeIteratorImpl > |
Iterates through an ExpressionTree in post-order.
Plays the role of the "implementor" class in the Bridge pattern that defines the post-order iteration algorithm.
Definition at line 204 of file IteratorImpl.h.
Definition at line 246 of file IteratorImpl.h.
typedef ::std::forward_iterator_tag madara::expression::PostOrderIteratorImpl::iterator_category |
Definition at line 242 of file IteratorImpl.h.
typedef int* madara::expression::PostOrderIteratorImpl::pointer |
Definition at line 244 of file IteratorImpl.h.
typedef int& madara::expression::PostOrderIteratorImpl::reference |
Definition at line 245 of file IteratorImpl.h.
Definition at line 243 of file IteratorImpl.h.
madara::expression::PostOrderIteratorImpl::PostOrderIteratorImpl | ( | const ExpressionTree & | tree, |
bool | end_iter = false |
||
) |
Construct an PostOrderIteratorImpl.
Construct an PostOrderExpressionTreeIterator.
If end_iter is set to true, the iterator points to the end of the tree. Otherwise, the iterator starts with a free tree.
If end_iter is set to true, the iterator points to the end of the tree
Definition at line 300 of file IteratorImpl.cpp.
|
virtual |
|
virtual |
Method for cloning an impl. Necessary for post increments.
Method for cloning an impl.
Necessary for post increments (bridge)
Implements madara::expression::ExpressionTreeIteratorImpl.
Definition at line 466 of file IteratorImpl.cpp.
|
virtual |
Nonequality operator.
checks two iterators for inequality
Implements madara::expression::ExpressionTreeIteratorImpl.
Definition at line 456 of file IteratorImpl.cpp.
|
virtual |
Dereference operator returns a reference to the item contained at the current position.
Returns the Node that the iterator is pointing to (non-const version)
Implements madara::expression::ExpressionTreeIteratorImpl.
Definition at line 345 of file IteratorImpl.cpp.
|
virtual |
Returns a const reference to the item contained at the current position.
Returns the Node that the iterator is pointing to (const version)
Implements madara::expression::ExpressionTreeIteratorImpl.
Definition at line 353 of file IteratorImpl.cpp.
|
virtual |
Increment operator (used for both pre- and post-increment).
moves the iterator to the next node (pre-increment)
Implements madara::expression::ExpressionTreeIteratorImpl.
Definition at line 361 of file IteratorImpl.cpp.
|
virtual |
Equality operator.
checks two iterators for equality
Implements madara::expression::ExpressionTreeIteratorImpl.
Definition at line 407 of file IteratorImpl.cpp.
|
friend |
Definition at line 206 of file IteratorImpl.h.
|
friend |
Definition at line 207 of file IteratorImpl.h.
|
private |
Our current position in the iteration.
Definition at line 250 of file IteratorImpl.h.
|
protectedinherited |
The tree we are iterating over.
Definition at line 83 of file IteratorImpl.h.