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

#include <metadata_db.h>

Inheritance diagram for MetaDataDb::MDDbRowIterator< IsConst >:
Inheritance graph
[legend]
Collaboration diagram for MetaDataDb::MDDbRowIterator< IsConst >:
Collaboration graph
[legend]

Public Member Functions

 MDDbRowIterator (typename TypeHelpers::choose< IsConst, const MetaDataDb &, MetaDataDb &>::type &mdd, size_t _i)
 
virtual ~MDDbRowIterator ()
 
std::unique_ptr< MDBaseRowIterator< IsConst > > clone () override
 
void increment () override
 
bool operator== (const MDBaseRowIterator< IsConst > &other) const override
 
TypeHelpers::choose< IsConst, const MDRowSql &, MDRowSql & >::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 MetaDataDb::MDDbRowIterator< IsConst >

Definition at line 684 of file metadata_db.h.

Constructor & Destructor Documentation

◆ MDDbRowIterator()

template<bool IsConst>
MetaDataDb::MDDbRowIterator< IsConst >::MDDbRowIterator ( typename TypeHelpers::choose< IsConst, const MetaDataDb &, MetaDataDb &>::type mdd,
size_t  _i 
)
inline

Definition at line 693 of file metadata_db.h.

694  : _mdd(mdd), _i(_i) {
695  mdd.myMDSql->selectObjects(_ids);
696  if (this->_i >= _ids.size())
697  return;
698 
699  _mdd.initGetRow(false);
700 
701  _mdd.execGetRow(this->_row);
702  this->_row.set_id(this->_ids[this->_i]);
703  if (this->_i+1 == _ids.size()) {
704  _mdd.finalizeGetRow();
705  _finalized = true;
706  }
707  }

◆ ~MDDbRowIterator()

template<bool IsConst>
virtual MetaDataDb::MDDbRowIterator< IsConst >::~MDDbRowIterator ( )
inlinevirtual

Definition at line 709 of file metadata_db.h.

709  {
710  if (!_finalized)
711  _mdd.finalizeGetRow();
712  }

Member Function Documentation

◆ clone()

template<bool IsConst>
std::unique_ptr<MDBaseRowIterator<IsConst> > MetaDataDb::MDDbRowIterator< IsConst >::clone ( )
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 714 of file metadata_db.h.

714  {
715  return memoryUtils::make_unique<MDDbRowIterator<IsConst>>(_mdd, _i);
716  }

◆ increment()

template<bool IsConst>
void MetaDataDb::MDDbRowIterator< IsConst >::increment ( )
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 718 of file metadata_db.h.

718  {
719  if (this->_i >= _ids.size())
720  return;
721 
722  this->_i++;
723 
724  if (this->_i >= _ids.size())
725  return;
726 
727  this->_mdd.execGetRow(this->_row);
728  this->_row.set_id(this->_ids[this->_i]);
729 
730  if (this->_i == _ids.size()) {
731  _mdd.finalizeGetRow();
732  _finalized = true;
733  }
734  }

◆ operator*()

template<bool IsConst>
TypeHelpers::choose<IsConst, const MDRowSql&, MDRowSql&>::type MetaDataDb::MDDbRowIterator< IsConst >::operator* ( )
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 743 of file metadata_db.h.

743 { return _row; }

◆ operator==()

template<bool IsConst>
bool MetaDataDb::MDDbRowIterator< IsConst >::operator== ( const MDBaseRowIterator< IsConst > &  other) const
inlineoverridevirtual

Implements MDBaseRowIterator< IsConst >.

Definition at line 736 of file metadata_db.h.

736  {
737  const MDDbRowIterator<IsConst>* dri = dynamic_cast<const MDDbRowIterator<IsConst>*>(&other);
738  if (dri != nullptr)
739  return this->_i == dri->_i;
740  return false;
741  }

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