HPCToolkit
IteratorStack Class Referenceabstract

#include <IteratorStack.hpp>

Inheritance diagram for IteratorStack:
Collaboration diagram for IteratorStack:

Public Types

enum  TraversalOrder {
  Unordered, PreOrder, PostOrder, ReversePreOrder,
  ReversePostOrder, PreAndPostOrder
}
 

Public Member Functions

 IteratorStack (TraversalOrder torder, IterStackEnumType enumType=ITER_STACK_ENUM_ALL_NODES)
 
 ~IteratorStack ()
 
void * CurrentUpCall () const
 
void operator++ (int)
 
void operator++ ()
 
void Reset ()
 
void Reset (TraversalOrder torder, IterStackEnumType enumType=ITER_STACK_ENUM_ALL_NODES)
 
void ReConstruct (TraversalOrder torder, IterStackEnumType enumType=ITER_STACK_ENUM_ALL_NODES)
 
bool IsValid () const
 
virtual TraversalVisitType VisitType () const
 
TraversalOrder GetTraversalOrder () const
 
virtual bool IterationIsForward () const
 
void DumpUpCall ()
 
void Dump ()
 

Protected Member Functions

void Push (StackableIterator *)
 
StackableIteratorTop (void) const
 
StackableIteratorGetIteratorAtPosition (unsigned int depth) const
 
void FreeTop ()
 
int Depth () const
 

Protected Attributes

TraversalOrder clientTraversalOrder
 
IterStackEnumType enumType
 

Private Member Functions

virtual StackableIteratorIteratorToPushIfAny (void *current)=0
 
void FreeStack (int maxDepth)
 
void InitTraversal (TraversalOrder torder, IterStackEnumType enumType)
 

Private Attributes

struct IteratorStackSiteratorStackRepr
 
TraversalOrder traversalOrder
 

Detailed Description

Definition at line 94 of file IteratorStack.hpp.

Member Enumeration Documentation

◆ TraversalOrder

Enumerator
Unordered 
PreOrder 
PostOrder 
ReversePreOrder 
ReversePostOrder 
PreAndPostOrder 

Definition at line 96 of file IteratorStack.hpp.

Constructor & Destructor Documentation

◆ IteratorStack()

IteratorStack::IteratorStack ( TraversalOrder  torder,
IterStackEnumType  enumType = ITER_STACK_ENUM_ALL_NODES 
)

Definition at line 79 of file IteratorStack.cpp.

◆ ~IteratorStack()

IteratorStack::~IteratorStack ( )

Definition at line 87 of file IteratorStack.cpp.

Member Function Documentation

◆ CurrentUpCall()

void * IteratorStack::CurrentUpCall ( ) const
virtual

Implements StackableIterator.

Reimplemented in NonUniformDegreeTreeIterator.

Definition at line 188 of file IteratorStack.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Depth()

int IteratorStack::Depth ( ) const
protected

Definition at line 250 of file IteratorStack.cpp.

◆ Dump()

void StackableIterator::Dump ( )
inherited

Definition at line 101 of file StackableIterator.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DumpUpCall()

void IteratorStack::DumpUpCall ( )
virtual

Reimplemented from StackableIterator.

Definition at line 296 of file IteratorStack.cpp.

Here is the call graph for this function:

◆ FreeStack()

void IteratorStack::FreeStack ( int  maxDepth)
private

Definition at line 267 of file IteratorStack.cpp.

◆ FreeTop()

void IteratorStack::FreeTop ( )
protected

Definition at line 256 of file IteratorStack.cpp.

◆ GetIteratorAtPosition()

StackableIterator * IteratorStack::GetIteratorAtPosition ( unsigned int  depth) const
protected

Definition at line 98 of file IteratorStack.cpp.

◆ GetTraversalOrder()

IteratorStack::TraversalOrder IteratorStack::GetTraversalOrder ( ) const

Definition at line 228 of file IteratorStack.cpp.

Here is the caller graph for this function:

◆ InitTraversal()

void IteratorStack::InitTraversal ( TraversalOrder  torder,
IterStackEnumType  enumType 
)
private

Definition at line 275 of file IteratorStack.cpp.

◆ IsValid()

bool IteratorStack::IsValid ( ) const
virtual

Reimplemented from StackableIterator.

Definition at line 195 of file IteratorStack.cpp.

Here is the call graph for this function:

◆ IterationIsForward()

bool IteratorStack::IterationIsForward ( ) const
virtual

Definition at line 233 of file IteratorStack.cpp.

Here is the caller graph for this function:

◆ IteratorToPushIfAny()

virtual StackableIterator* IteratorStack::IteratorToPushIfAny ( void *  current)
privatepure virtual

◆ operator++() [1/2]

void IteratorStack::operator++ ( int  )

Definition at line 125 of file IteratorStack.cpp.

Here is the call graph for this function:

◆ operator++() [2/2]

void IteratorStack::operator++ ( )
virtual

Implements StackableIterator.

Definition at line 119 of file IteratorStack.cpp.

◆ Push()

void IteratorStack::Push ( StackableIterator newtop)
protected

Definition at line 104 of file IteratorStack.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReConstruct()

void IteratorStack::ReConstruct ( TraversalOrder  torder,
IterStackEnumType  enumType = ITER_STACK_ENUM_ALL_NODES 
)

Definition at line 162 of file IteratorStack.cpp.

◆ Reset() [1/2]

void IteratorStack::Reset ( void  )
virtual

Implements StackableIterator.

Definition at line 170 of file IteratorStack.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Reset() [2/2]

void IteratorStack::Reset ( TraversalOrder  torder,
IterStackEnumType  enumType = ITER_STACK_ENUM_ALL_NODES 
)

Definition at line 181 of file IteratorStack.cpp.

◆ Top()

StackableIterator * IteratorStack::Top ( void  ) const
protected

Definition at line 93 of file IteratorStack.cpp.

Here is the caller graph for this function:

◆ VisitType()

TraversalVisitType IteratorStack::VisitType ( ) const
virtual

Definition at line 201 of file IteratorStack.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ clientTraversalOrder

TraversalOrder IteratorStack::clientTraversalOrder
protected

Definition at line 129 of file IteratorStack.hpp.

◆ enumType

IterStackEnumType IteratorStack::enumType
protected

Definition at line 130 of file IteratorStack.hpp.

◆ iteratorStackRepr

struct IteratorStackS* IteratorStack::iteratorStackRepr
private

Definition at line 145 of file IteratorStack.hpp.

◆ traversalOrder

TraversalOrder IteratorStack::traversalOrder
private

Definition at line 146 of file IteratorStack.hpp.


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