35   if ( mUseCachedFeatures )
    37     if ( mFeatureIterator != mCachedFeatures.constEnd() )
    39       f = mFeatureIterator->mFeature;
   157   Q_UNUSED( simplifyMethod );
   161 void QgsAbstractFeatureIterator::setupOrderBy( 
const QList<QgsFeatureRequest::OrderByClause> &orderBys )
   164   if ( !orderBys.isEmpty() && !prepareOrderBy( orderBys ) )
   169     QList<QgsFeatureRequest::OrderByClause> preparedOrderBys( orderBys );
   170     QList<QgsFeatureRequest::OrderByClause>::iterator orderByIt( preparedOrderBys.begin() );
   175       orderByIt->prepare( expressionContext );
   177     while ( ++orderByIt != preparedOrderBys.end() );
   181     indexedFeature.
mIndexes.resize( preparedOrderBys.size() );
   185       expressionContext->setFeature( indexedFeature.
mFeature );
   195       mCachedFeatures.append( indexedFeature );
   198     std::sort( mCachedFeatures.begin(), mCachedFeatures.end(), QgsExpressionSorter( preparedOrderBys ) );
   200     mFeatureIterator = mCachedFeatures.constBegin();
   201     mUseCachedFeatures = 
true;
   209   Q_UNUSED( methodType )
   213 bool QgsAbstractFeatureIterator::prepareOrderBy( 
const QList<QgsFeatureRequest::OrderByClause> &orderBys )
   227   if ( 
this != &other )
   240   return mIter && mIter->isValid();
 
Wrapper for iterator of features from vector data provider or vector layer. 
 
const QgsSimplifyMethod & simplifyMethod() const 
Gets simplification method for geometries that will be fetched. 
 
A rectangle specified with double values. 
 
Filter using feature IDs. 
 
OperationResult transform(const QgsCoordinateTransform &ct, QgsCoordinateTransform::TransformDirection direction=QgsCoordinateTransform::ForwardTransform, bool transformZ=false) SIP_THROW(QgsCsException)
Transforms this geometry as described by the coordinate transform ct. 
 
long mFetchedCount
Number of features already fetched by iterator. 
 
QgsRectangle filterRectToSourceCrs(const QgsCoordinateTransform &transform) const SIP_THROW(QgsCsException)
Returns a rectangle representing the original request's QgsFeatureRequest::filterRect(). 
 
const QgsRectangle & filterRect() const 
Returns the rectangle from which features will be taken. 
 
virtual bool isValid() const 
Will return if this iterator is valid. 
 
virtual bool fetchFeature(QgsFeature &f)=0
If you write a feature iterator for your provider, this is the method you need to implement!! ...
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context. 
 
QgsExpressionContext * expressionContext()
Returns the expression context used to evaluate filter expressions. 
 
const QgsFeatureIds & filterFids() const 
Gets feature IDs that should be fetched. 
 
bool compileFailed() const 
Indicator if there was an error when sending the compiled query to the server. 
 
QVariant evaluate()
Evaluate the feature and return the result. 
 
bool isNull() const 
Test if the rectangle is null (all coordinates zero or after call to setMinimal()). 
 
std::function< void(const QgsFeature &) > transformErrorCallback() const 
Returns the callback function to use when encountering a transform error when iterating features and ...
 
A geometry is the spatial representation of a feature. 
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
Base class for feedback objects to be used for cancellation of something running in a worker thread...
 
QgsExpression expression() const 
The expression. 
 
virtual bool nextFeature(QgsFeature &f)
fetch next feature, return true on success 
 
Temporarily used structure to cache order by information. 
 
QgsFeatureIterator & operator=(const QgsFeatureIterator &other)
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
virtual bool nextFeatureFilterExpression(QgsFeature &f)
By default, the iterator will fetch all features and check if the feature matches the expression...
 
bool mZombie
A feature iterator may be closed already but still be serving features from the cache. 
 
This class wraps a request for features to a vector layer (or directly its vector data provider)...
 
FilterType filterType() const 
Returns the filter type which is currently set on this request. 
 
void deref()
Remove reference, delete if refs == 0. 
 
void geometryToDestinationCrs(QgsFeature &feature, const QgsCoordinateTransform &transform) const 
Transforms feature's geometry according to the specified coordinate transform. 
 
long limit() const 
Returns the maximum number of features to request, or -1 if no limit set. 
 
virtual bool nextFeatureFilterFids(QgsFeature &f)
By default, the iterator will fetch all features and check if the id is in the request. 
 
The OrderByClause class represents an order by clause for a QgsFeatureRequest. 
 
QgsFeatureRequest mRequest
A copy of the feature request. 
 
void clearGeometry()
Removes any geometry associated with the feature. 
 
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry. 
 
bool hasGeometry() const 
Returns true if the feature has an associated geometry. 
 
QgsAbstractFeatureIterator * mIter
 
OrderBy orderBy() const 
Returns a list of order by clauses specified for this feature request. 
 
virtual void setInterruptionChecker(QgsFeedback *interruptionChecker)
Attach an object that can be queried regularly by the iterator to check if it must stopped...
 
QVector< QVariant > mIndexes
 
This class contains information about how to simplify geometries fetched from a QgsFeatureIterator. 
 
Custom exception class for Coordinate Reference System related exceptions. 
 
int refs
reference counting (to allow seamless copying of QgsFeatureIterator instances) TODO QGIS3: make this ...
 
virtual bool prepareSimplification(const QgsSimplifyMethod &simplifyMethod)
Setup the simplification of geometries to fetch using the specified simplify method. 
 
QgsAbstractFeatureIterator(const QgsFeatureRequest &request)
base class constructor - stores the iteration parameters 
 
QgsExpression * filterExpression() const 
Returns the filter expression if set.