BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
NodeIterator< Strategy > Class Template Reference
Collaboration diagram for NodeIterator< Strategy >:

Public Member Functions

 NodeIterator (const INode *root)
 
virtual ~NodeIterator ()
 
void first ()
 
void next ()
 
const INodegetCurrent ()
 
bool isDone () const
 
int depth () const
 

Protected Attributes

Strategy m_strategy
 
IteratorMemento m_memento_itor
 
const INodemp_root
 

Detailed Description

template<class Strategy>
class NodeIterator< Strategy >

Iterator through INode tree of objects.

Usage example: SampleTreeIterator<Strategy> it(&sample); it.first(); while( !it.is_done() ) { INode *p_sample = it.get_current(); it.next(); }

Definition at line 89 of file NodeIterator.h.

Constructor & Destructor Documentation

◆ NodeIterator()

template<class Strategy >
NodeIterator< Strategy >::NodeIterator ( const INode root)
inline

Definition at line 108 of file NodeIterator.h.

108  : mp_root(root)
109 {
110 }
const INode * mp_root
Definition: NodeIterator.h:104

◆ ~NodeIterator()

template<class Strategy >
virtual NodeIterator< Strategy >::~NodeIterator ( )
inlinevirtual

Definition at line 93 of file NodeIterator.h.

93 {}

Member Function Documentation

◆ first()

template<class Strategy >
void NodeIterator< Strategy >::first
inline

Definition at line 112 of file NodeIterator.h.

113 {
115 }
Strategy m_strategy
Definition: NodeIterator.h:102
IteratorMemento m_memento_itor
Definition: NodeIterator.h:103

Referenced by INode::createParameterTree(), NodeUtils::nodeToString(), VisitNodesPostorder(), and VisitNodesPreorder().

◆ next()

template<class Strategy >
void NodeIterator< Strategy >::next
inline

◆ getCurrent()

template<class Strategy >
const INode * NodeIterator< Strategy >::getCurrent
inline

Definition at line 122 of file NodeIterator.h.

123 {
124  return m_memento_itor.getCurrent();
125 }
const INode * getCurrent()
Definition: NodeIterator.h:70

Referenced by INode::createParameterTree(), NodeUtils::nodeToString(), VisitNodesPostorder(), and VisitNodesPreorder().

◆ isDone()

template<class Strategy >
bool NodeIterator< Strategy >::isDone
inline

Definition at line 127 of file NodeIterator.h.

128 {
129  return m_memento_itor.size() == 0;
130 }
size_t size() const
Definition: NodeIterator.h:72

Referenced by INode::createParameterTree(), NodeUtils::nodeToString(), VisitNodesPostorder(), and VisitNodesPreorder().

◆ depth()

template<class Strategy >
int NodeIterator< Strategy >::depth
inline

Definition at line 132 of file NodeIterator.h.

133 {
134  return static_cast<int>(m_memento_itor.size());
135 }

Referenced by NodeUtils::nodeToString(), VisitNodesPostorder(), and VisitNodesPreorder().

Member Data Documentation

◆ m_strategy

template<class Strategy >
Strategy NodeIterator< Strategy >::m_strategy
protected

Definition at line 102 of file NodeIterator.h.

◆ m_memento_itor

template<class Strategy >
IteratorMemento NodeIterator< Strategy >::m_memento_itor
protected

Definition at line 103 of file NodeIterator.h.

◆ mp_root

template<class Strategy >
const INode* NodeIterator< Strategy >::mp_root
protected

Definition at line 104 of file NodeIterator.h.


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