Xmipp  v3.23.11-Nereus
Public Member Functions | List of all members
MetaDataVec::MDVecRowIterator< IsConst > Struct Template Reference

#include <metadata_vec.h>

Inheritance diagram for MetaDataVec::MDVecRowIterator< IsConst >:
Inheritance graph
[legend]
Collaboration diagram for MetaDataVec::MDVecRowIterator< IsConst >:
Collaboration graph
[legend]

Public Member Functions

 MDVecRowIterator (typename TypeHelpers::choose< IsConst, const MetaDataVec &, MetaDataVec &>::type &mdv, size_t i)
 
std::unique_ptr< MDBaseRowIterator< IsConst > > clone () override
 
void increment () override
 
bool operator== (const MDBaseRowIterator< IsConst > &other) const override
 
TypeHelpers::choose< IsConst, const MDRowVec &, MDRowVec & >::type operator* () override
 
- Public Member Functions inherited from MDBaseRowIterator< IsConst >
virtual ~MDBaseRowIterator ()
 
virtual bool operator!= (const MDBaseRowIterator &other) const
 

Detailed Description

template<bool IsConst>
struct MetaDataVec::MDVecRowIterator< IsConst >

Definition at line 463 of file metadata_vec.h.

Constructor & Destructor Documentation

◆ MDVecRowIterator()

template<bool IsConst>
MetaDataVec::MDVecRowIterator< IsConst >::MDVecRowIterator ( typename TypeHelpers::choose< IsConst, const MetaDataVec &, MetaDataVec &>::type mdv,
size_t  i 
)
inline

Definition at line 471 of file metadata_vec.h.

472  : _mdv(mdv), _i(i) {
473  if (_i < _mdv.size())
474  _row.reset(new RowType(mdv._rows.at(i), i, mdv._label_to_col, mdv._col_to_label, mdv._no_columns));
475  else
476  _row = nullptr;
477  }
#define i

Member Function Documentation

◆ clone()

template<bool IsConst>
std::unique_ptr<MDBaseRowIterator<IsConst> > MetaDataVec::MDVecRowIterator< IsConst >::clone ( )
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 479 of file metadata_vec.h.

479  {
480  return memoryUtils::make_unique<MDVecRowIterator<IsConst>>(_mdv, _i);
481  }

◆ increment()

template<bool IsConst>
void MetaDataVec::MDVecRowIterator< IsConst >::increment ( )
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 483 of file metadata_vec.h.

483  {
484  _i++;
485  if (_i < _mdv.size())
486  _row.reset(new RowType(_mdv._rows.at(_i), _i, _mdv._label_to_col, _mdv._col_to_label, _mdv._no_columns));
487  else
488  _row = nullptr;
489  }

◆ operator*()

template<bool IsConst>
TypeHelpers::choose<IsConst, const MDRowVec&, MDRowVec&>::type MetaDataVec::MDVecRowIterator< IsConst >::operator* ( )
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 498 of file metadata_vec.h.

498 { return *_row; }

◆ operator==()

template<bool IsConst>
bool MetaDataVec::MDVecRowIterator< IsConst >::operator== ( const MDBaseRowIterator< IsConst > &  other) const
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 491 of file metadata_vec.h.

491  {
492  const MDVecRowIterator* vri = dynamic_cast<const MDVecRowIterator<IsConst>*>(&other);
493  if (vri != nullptr)
494  return _i == vri->_i;
495  return false;
496  }
MDVecRowIterator(typename TypeHelpers::choose< IsConst, const MetaDataVec &, MetaDataVec &>::type &mdv, size_t i)
Definition: metadata_vec.h:471

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