QGIS API Documentation
3.14.0-Pi (9f7028fd23)
|
Go to the documentation of this file.
15 #ifndef QGSFEATUREITERATOR_H
16 #define QGSFEATUREITERATOR_H
18 #include "qgis_core.h"
50 virtual bool rewind() = 0;
52 virtual bool close() = 0;
92 bool compileFailed()
const;
103 virtual bool fetchFeature(
QgsFeature &f ) = 0;
115 virtual bool nextFeatureFilterExpression(
QgsFeature &f );
128 virtual bool nextFeatureFilterFids(
QgsFeature &f );
156 bool mClosed =
false;
165 bool mZombie =
false;
179 long mFetchedCount = 0;
184 bool mCompileFailed =
false;
200 bool mUseCachedFeatures =
false;
201 QList<QgsIndexedFeature> mCachedFeatures;
202 QList<QgsIndexedFeature>::ConstIterator mFeatureIterator;
215 virtual bool prepareOrderBy(
const QList<QgsFeatureRequest::OrderByClause> &orderBys );
223 void setupOrderBy(
const QList<QgsFeatureRequest::OrderByClause> &orderBys );
241 mSource->iteratorOpened(
this );
275 std::unique_ptr< QgsFeature > f = qgis::make_unique< QgsFeature >();
277 Py_BEGIN_ALLOW_THREADS
278 result = ( sipCpp->nextFeature( *f ) );
281 sipRes = sipConvertFromType( f.release(), sipType_QgsFeature, Py_None );
284 PyErr_SetString( PyExc_StopIteration,
"" );
313 bool isValid()
const;
316 bool isClosed()
const;
406 return !( fi1 == fi2 );
417 #endif // QGSFEATUREITERATOR_H
@ Compiled
Expression was fully compiled and delegated to data provider source.
virtual void setInterruptionChecker(QgsFeedback *interruptionChecker)
Attach an object that can be queried regularly by the iterator to check if it must stopped.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
virtual bool isValid() const
Returns if this iterator is valid.
void iteratorClosed()
to be called by from subclass in close()
bool mClosed
Sets to true, as soon as the iterator is closed.
long mFetchedCount
Number of features already fetched by iterator.
QgsFeatureRequest mRequest
A copy of the feature request.
bool isClosed() const
find out whether the iterator is still valid or closed already
virtual bool nextFeature(QgsFeature &f)
fetch next feature, return true on success
bool compileFailed() const
Indicator if there was an error when sending the compiled query to the server.
QgsAbstractFeatureIterator::CompileStatus compileStatus() const
Returns the status of expression compilation for filter expression requests.
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QgsAbstractFeatureIteratorFromSource(T *source, bool ownSource, const QgsFeatureRequest &request)
#define SIP_TYPEHINT(type)
bool mZombie
A feature iterator may be closed already but still be serving features from the cache.
~QgsAbstractFeatureIteratorFromSource() override
@ PartiallyCompiled
Expression was partially compiled, but extra checks need to be applied to features.
~QgsFeatureIterator()
Destructor deletes the iterator if it has no more references.
virtual bool rewind()=0
reset the iterator to the starting position
CompileStatus
Status of expression compilation for filter expression requests.
bool nextFeature(QgsFeature &f)
void deref()
Remove reference, delete if refs == 0.
QgsFeatureIterator()=default
Construct invalid iterator.
void setInterruptionChecker(QgsFeedback *interruptionChecker)
Attach an object that can be queried regularly by the iterator to check if it must stopped.
@ NoCompilation
Expression could not be compiled or not attempt was made to compile expression.
QgsAbstractFeatureIterator * mIter
CompileStatus compileStatus() const
Returns the status of expression compilation for filter expression requests.
virtual bool close()=0
end of iterating: free the resources / lock