BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IteratorState Class Reference
Collaboration diagram for IteratorState:

Public Member Functions

 IteratorState (const INode *single_element)
 
 IteratorState (std::vector< const INode * > samples)
 
virtual ~IteratorState ()
 
const INodegetCurrent () const
 
bool isEnd () const
 
void next ()
 

Private Member Functions

 IteratorState ()
 

Private Attributes

std::vector< const INode * > m_samples
 
size_t m_position
 

Friends

std::ostream & operator<< (std::ostream &output_stream, IteratorState const &iterator_state)
 

Detailed Description

Holds state of iterator at single level for SampleTreeIterator.

Definition at line 26 of file NodeIterator.h.

Constructor & Destructor Documentation

◆ IteratorState() [1/3]

IteratorState::IteratorState ( const INode single_element)

Definition at line 17 of file NodeIterator.cpp.

17  : m_position(0)
18 {
19  m_samples.push_back(single_element);
20 }
std::vector< const INode * > m_samples
Definition: NodeIterator.h:46
size_t m_position
Definition: NodeIterator.h:47

References m_samples.

◆ IteratorState() [2/3]

IteratorState::IteratorState ( std::vector< const INode * >  samples)

Definition at line 22 of file NodeIterator.cpp.

22  : m_samples(samples), m_position(0)
23 {
24 }

◆ ~IteratorState()

virtual IteratorState::~IteratorState ( )
inlinevirtual

Definition at line 32 of file NodeIterator.h.

32 {}

◆ IteratorState() [3/3]

IteratorState::IteratorState ( )
private

Member Function Documentation

◆ getCurrent()

const INode* IteratorState::getCurrent ( ) const
inline

Definition at line 34 of file NodeIterator.h.

34 { return m_samples[m_position]; }

References m_position, and m_samples.

◆ isEnd()

bool IteratorState::isEnd ( ) const
inline

Definition at line 35 of file NodeIterator.h.

35 { return m_position >= m_samples.size(); }

References m_position, and m_samples.

Referenced by PreorderStrategy::next(), and PostorderStrategy::next().

◆ next()

void IteratorState::next ( )
inline

Definition at line 36 of file NodeIterator.h.

36 { ++m_position; }

References m_position.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  output_stream,
IteratorState const &  iterator_state 
)
friend

Definition at line 38 of file NodeIterator.h.

40  {
41  return output_stream << "memento state " << iterator_state.m_position << " "
42  << iterator_state.m_samples.size();
43  }

Member Data Documentation

◆ m_samples

std::vector<const INode*> IteratorState::m_samples
private

Definition at line 46 of file NodeIterator.h.

Referenced by getCurrent(), isEnd(), and IteratorState().

◆ m_position

size_t IteratorState::m_position
private

Definition at line 47 of file NodeIterator.h.

Referenced by getCurrent(), isEnd(), and next().


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