BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
OutputDataIterator< TValue, TContainer > Class Template Reference
Collaboration diagram for OutputDataIterator< TValue, TContainer >:

Public Types

typedef std::forward_iterator_tag iterator_category
 
typedef TValue value_type
 
typedef ptrdiff_t difference_type
 
typedef TValue * pointer_type
 
typedef TValue & reference_type
 
typedef TValue * pointer
 
typedef TValue & reference
 

Public Member Functions

 OutputDataIterator ()
 
 OutputDataIterator (TContainer *p_output_data, size_t start_at_index=0)
 
template<class TValue2 , class TContainer2 >
 OutputDataIterator (const OutputDataIterator< TValue2, TContainer2 > &other)
 
 OutputDataIterator (const OutputDataIterator< TValue, TContainer > &other)
 
template<class TValue2 , class TContainer2 >
OutputDataIterator< TValue, TContainer > & operator= (const OutputDataIterator< TValue2, TContainer2 > &right)
 
OutputDataIterator< TValue, TContainer > & operator= (const OutputDataIterator< TValue, TContainer > &right)
 
 ~OutputDataIterator ()
 
OutputDataIterator< TValue, TContainer > & operator++ ()
 
OutputDataIterator< TValue, TContainer > operator++ (int)
 
TValue & operator* () const
 
TValue * operator-> () const
 
size_t getIndex () const
 
TContainer * getContainer () const
 
void swap (OutputDataIterator< TValue, TContainer > &other)
 

Private Attributes

size_t m_current_index
 
TContainer * mp_output_data
 

Detailed Description

template<class TValue, class TContainer>
class OutputDataIterator< TValue, TContainer >

Iterator for underlying OutputData container.

Definition at line 25 of file OutputDataIterator.h.

Member Typedef Documentation

◆ iterator_category

template<class TValue , class TContainer >
typedef std::forward_iterator_tag OutputDataIterator< TValue, TContainer >::iterator_category

Definition at line 74 of file OutputDataIterator.h.

◆ value_type

template<class TValue , class TContainer >
typedef TValue OutputDataIterator< TValue, TContainer >::value_type

Definition at line 75 of file OutputDataIterator.h.

◆ difference_type

template<class TValue , class TContainer >
typedef ptrdiff_t OutputDataIterator< TValue, TContainer >::difference_type

Definition at line 76 of file OutputDataIterator.h.

◆ pointer_type

template<class TValue , class TContainer >
typedef TValue* OutputDataIterator< TValue, TContainer >::pointer_type

Definition at line 77 of file OutputDataIterator.h.

◆ reference_type

template<class TValue , class TContainer >
typedef TValue& OutputDataIterator< TValue, TContainer >::reference_type

Definition at line 78 of file OutputDataIterator.h.

◆ pointer

template<class TValue , class TContainer >
typedef TValue* OutputDataIterator< TValue, TContainer >::pointer

Definition at line 80 of file OutputDataIterator.h.

◆ reference

template<class TValue , class TContainer >
typedef TValue& OutputDataIterator< TValue, TContainer >::reference

Definition at line 81 of file OutputDataIterator.h.

Constructor & Destructor Documentation

◆ OutputDataIterator() [1/4]

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer >::OutputDataIterator

Empty constructor to comply with stl forward iterators.

Definition at line 108 of file OutputDataIterator.h.

109 {
110 }
TContainer * mp_output_data

◆ OutputDataIterator() [2/4]

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer >::OutputDataIterator ( TContainer *  p_output_data,
size_t  start_at_index = 0 
)

constructor

Definition at line 113 of file OutputDataIterator.h.

115  : m_current_index(start_at_index), mp_output_data(p_output_data)
116 {
117 }

◆ OutputDataIterator() [3/4]

template<class TValue , class TContainer >
template<class TValue2 , class TContainer2 >
OutputDataIterator< TValue, TContainer >::OutputDataIterator ( const OutputDataIterator< TValue2, TContainer2 > &  other)

templated copy construction

Definition at line 121 of file OutputDataIterator.h.

124 {
125  mp_output_data = static_cast<TContainer*>(other.getContainer());
126  m_current_index = other.getIndex();
127 }
size_t getIndex() const
Returns current index.
TContainer * getContainer() const
Returns container pointer.

References OutputDataIterator< TValue, TContainer >::getContainer(), OutputDataIterator< TValue, TContainer >::getIndex(), OutputDataIterator< TValue, TContainer >::m_current_index, and OutputDataIterator< TValue, TContainer >::mp_output_data.

Here is the call graph for this function:

◆ OutputDataIterator() [4/4]

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer >::OutputDataIterator ( const OutputDataIterator< TValue, TContainer > &  other)

non-templated copy construction

Definition at line 130 of file OutputDataIterator.h.

133 {
134  mp_output_data = other.getContainer();
135  m_current_index = other.getIndex();
136 }

References OutputDataIterator< TValue, TContainer >::getContainer(), OutputDataIterator< TValue, TContainer >::getIndex(), OutputDataIterator< TValue, TContainer >::m_current_index, and OutputDataIterator< TValue, TContainer >::mp_output_data.

Here is the call graph for this function:

◆ ~OutputDataIterator()

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer >::~OutputDataIterator

Definition at line 158 of file OutputDataIterator.h.

159 {
160 }

Member Function Documentation

◆ operator=() [1/2]

template<class TValue , class TContainer >
template<class TValue2 , class TContainer2 >
OutputDataIterator< TValue, TContainer > & OutputDataIterator< TValue, TContainer >::operator= ( const OutputDataIterator< TValue2, TContainer2 > &  right)

templated copy assignment

Definition at line 140 of file OutputDataIterator.h.

142 {
144  swap(copy);
145  return *this;
146 }
Iterator for underlying OutputData container.
void swap(OutputDataIterator< TValue, TContainer > &other)
Swaps iterators.

References swap().

Here is the call graph for this function:

◆ operator=() [2/2]

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer > & OutputDataIterator< TValue, TContainer >::operator= ( const OutputDataIterator< TValue, TContainer > &  right)

non-templated copy asssignment

Definition at line 149 of file OutputDataIterator.h.

151 {
153  swap(copy);
154  return *this;
155 }

References swap().

Here is the call graph for this function:

◆ operator++() [1/2]

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer > & OutputDataIterator< TValue, TContainer >::operator++

prefix increment

Definition at line 163 of file OutputDataIterator.h.

164 {
165  if (m_current_index < mp_output_data->getAllocatedSize()) {
166  ++m_current_index;
167  }
168  return *this;
169 }

◆ operator++() [2/2]

template<class TValue , class TContainer >
OutputDataIterator< TValue, TContainer > OutputDataIterator< TValue, TContainer >::operator++ ( int  )

postfix increment

Definition at line 172 of file OutputDataIterator.h.

173 {
175  this->operator++();
176  return result;
177 }
OutputDataIterator< TValue, TContainer > & operator++()
prefix increment

◆ operator*()

template<class TValue , class TContainer >
TValue & OutputDataIterator< TValue, TContainer >::operator*

retrieve current element

Definition at line 180 of file OutputDataIterator.h.

181 {
182  return (*mp_output_data)[m_current_index];
183 }

◆ operator->()

template<class TValue , class TContainer >
TValue * OutputDataIterator< TValue, TContainer >::operator->

pointer access

Definition at line 186 of file OutputDataIterator.h.

187 {
188  return &((*mp_output_data)[m_current_index]);
189 }

◆ getIndex()

template<class TValue , class TContainer >
size_t OutputDataIterator< TValue, TContainer >::getIndex ( ) const
inline

◆ getContainer()

template<class TValue , class TContainer >
TContainer* OutputDataIterator< TValue, TContainer >::getContainer ( ) const
inline

◆ swap()

template<class TValue , class TContainer >
void OutputDataIterator< TValue, TContainer >::swap ( OutputDataIterator< TValue, TContainer > &  other)

Swaps iterators.

Definition at line 192 of file OutputDataIterator.h.

193 {
196 }
void swap(OutputDataIterator< TValue, TContainer > &left, OutputDataIterator< TValue, TContainer > &right)
make Swappable

References OutputDataIterator< TValue, TContainer >::m_current_index, OutputDataIterator< TValue, TContainer >::mp_output_data, and swap().

Referenced by swap().

Here is the call graph for this function:

Member Data Documentation

◆ m_current_index

template<class TValue , class TContainer >
size_t OutputDataIterator< TValue, TContainer >::m_current_index
private

◆ mp_output_data

template<class TValue , class TContainer >
TContainer* OutputDataIterator< TValue, TContainer >::mp_output_data
private

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