16#ifndef QGSCACHEDFEATUREITERATOR_H
17#define QGSCACHEDFEATUREITERATOR_H
60 bool close()
override;
86 QList< QgsFeatureId > mFeatureIds;
87 QPointer< QgsVectorLayerCache > mVectorLayerCache =
nullptr;
88 QList< QgsFeatureId >::ConstIterator mFeatureIdIterator;
93 std::unique_ptr< QgsGeometryEngine > mDistanceWithinEngine;
94 double mDistanceWithin = 0;
127 bool close()
override;
141 QPointer< QgsVectorLayerCache > mVectorLayerCache;
virtual bool rewind()=0
Resets the iterator to the starting position.
friend class QgsFeatureIterator
virtual bool fetchFeature(QgsFeature &f)=0
If you write a feature iterator for your provider, this is the method you need to implement!
virtual bool close()=0
Call to end the iteration.
QgsAbstractFeatureIterator(const QgsFeatureRequest &request)
base class constructor - stores the iteration parameters
Delivers features from the cache.
QgsCachedFeatureIterator(QgsVectorLayerCache *vlCache, const QgsFeatureRequest &featureRequest)
This constructor creates a feature iterator, that delivers all cached features.
~QgsCachedFeatureIterator() override
bool nextFeatureFilterFids(QgsFeature &f) override
We have a local special iterator for FilterFids, no need to run the generic.
QgsCachedFeatureWriterIterator(QgsVectorLayerCache *vlCache, const QgsFeatureRequest &featureRequest)
This constructor creates a feature iterator, which queries the backend and caches retrieved features.
Wraps a request for features to a vector layer (or directly its vector data provider).
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
A geometry is the spatial representation of a feature.
A rectangle specified with double values.
Caches features for a given QgsVectorLayer.
QSet< QgsFeatureId > QgsFeatureIds