QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
Internal feature iterator to be implemented within data providers. More...
#include <qgsfeatureiterator.h>
Public Types | |
enum | CompileStatus { NoCompilation, PartiallyCompiled, Compiled } |
Status of expression compilation for filter expression requests. More... | |
Public Member Functions | |
QgsAbstractFeatureIterator (const QgsFeatureRequest &request) | |
base class constructor - stores the iteration parameters More... | |
virtual | ~QgsAbstractFeatureIterator () |
destructor makes sure that the iterator is closed properly More... | |
virtual bool | close ()=0 |
end of iterating: free the resources / lock More... | |
CompileStatus | compileStatus () const |
Returns the status of expression compilation for filter expression requests. More... | |
virtual bool | nextFeature (QgsFeature &f) |
fetch next feature, return true on success More... | |
virtual bool | rewind ()=0 |
reset the iterator to the starting position More... | |
virtual void | setInterruptionChecker (QgsInterruptionChecker *interruptionChecker) |
Attach an object that can be queried regularly by the iterator to check if it must stopped. More... | |
Protected Member Functions | |
void | deref () |
remove reference, delete if refs == 0 More... | |
virtual bool | fetchFeature (QgsFeature &f)=0 |
If you write a feature iterator for your provider, this is the method you need to implement!! More... | |
virtual bool | nextFeatureFilterExpression (QgsFeature &f) |
By default, the iterator will fetch all features and check if the feature matches the expression. More... | |
virtual bool | nextFeatureFilterFids (QgsFeature &f) |
By default, the iterator will fetch all features and check if the id is in the request. More... | |
virtual bool | prepareSimplification (const QgsSimplifyMethod &simplifyMethod) |
Setup the simplification of geometries to fetch using the specified simplify method. More... | |
void | ref () |
add reference More... | |
Protected Attributes | |
bool | mClosed |
Set to true, as soon as the iterator is closed. More... | |
CompileStatus | mCompileStatus |
Status of compilation of filter expression. More... | |
long | mFetchedCount |
Number of features already fetched by iterator. More... | |
QgsFeatureRequest | mRequest |
A copy of the feature request. More... | |
bool | mZombie |
A feature iterator may be closed already but still be serving features from the cache. More... | |
int | refs |
reference counting (to allow seamless copying of QgsFeatureIterator instances) TODO QGIS3: make this private More... | |
Friends | |
class | QgsFeatureIterator |
Internal feature iterator to be implemented within data providers.
Definition at line 39 of file qgsfeatureiterator.h.
Status of expression compilation for filter expression requests.
Definition at line 44 of file qgsfeatureiterator.h.
QgsAbstractFeatureIterator::QgsAbstractFeatureIterator | ( | const QgsFeatureRequest & | request | ) |
base class constructor - stores the iteration parameters
Definition at line 22 of file qgsfeatureiterator.cpp.
|
virtual |
destructor makes sure that the iterator is closed properly
Definition at line 33 of file qgsfeatureiterator.cpp.
|
pure virtual |
end of iterating: free the resources / lock
Implemented in QgsCachedFeatureWriterIterator, QgsVectorLayerFeatureIterator, and QgsCachedFeatureIterator.
|
inline |
Returns the status of expression compilation for filter expression requests.
Definition at line 78 of file qgsfeatureiterator.h.
|
protected |
remove reference, delete if refs == 0
Definition at line 122 of file qgsfeatureiterator.cpp.
|
protectedpure virtual |
If you write a feature iterator for your provider, this is the method you need to implement!!
f | The feature to write to |
Implemented in QgsCachedFeatureWriterIterator, QgsVectorLayerFeatureIterator, and QgsCachedFeatureIterator.
|
virtual |
fetch next feature, return true on success
Definition at line 37 of file qgsfeatureiterator.cpp.
|
protectedvirtual |
By default, the iterator will fetch all features and check if the feature matches the expression.
If you have a more sophisticated metodology (SQL request for the features...) and you check for the expression in your fetchFeature method, you can just redirect this call to fetchFeature so the default check will be omitted.
f | The feature to write to |
Reimplemented in QgsVectorLayerFeatureIterator.
Definition at line 84 of file qgsfeatureiterator.cpp.
|
protectedvirtual |
By default, the iterator will fetch all features and check if the id is in the request.
If you have a more sophisticated metodology (SQL request for the features...) and you are sure, that any feature you return from fetchFeature will match if the request was FilterFids you can just redirect this call to fetchFeature so the default check will be omitted.
f | The feature to write to |
Reimplemented in QgsCachedFeatureIterator.
Definition at line 95 of file qgsfeatureiterator.cpp.
|
protectedvirtual |
Setup the simplification of geometries to fetch using the specified simplify method.
Reimplemented in QgsVectorLayerFeatureIterator.
Definition at line 129 of file qgsfeatureiterator.cpp.
|
protected |
add reference
Definition at line 105 of file qgsfeatureiterator.cpp.
|
pure virtual |
reset the iterator to the starting position
Implemented in QgsCachedFeatureWriterIterator, QgsVectorLayerFeatureIterator, and QgsCachedFeatureIterator.
|
virtual |
Attach an object that can be queried regularly by the iterator to check if it must stopped.
This is mostly useful for iterators where a single nextFeature()/fetchFeature() iteration might be very long. A typical use case is the WFS provider. When nextFeature()/fetchFeature() is reasonably fast, it is not necessary to implement this method. The default implementation does nothing.
Reimplemented in QgsVectorLayerFeatureIterator.
Definition at line 193 of file qgsfeatureiterator.cpp.
|
friend |
Definition at line 135 of file qgsfeatureiterator.h.
|
protected |
Set to true, as soon as the iterator is closed.
Definition at line 119 of file qgsfeatureiterator.h.
|
protected |
Status of compilation of filter expression.
Definition at line 141 of file qgsfeatureiterator.h.
|
protected |
Number of features already fetched by iterator.
Definition at line 138 of file qgsfeatureiterator.h.
|
protected |
A copy of the feature request.
Definition at line 116 of file qgsfeatureiterator.h.
|
protected |
A feature iterator may be closed already but still be serving features from the cache.
This is done when we serve features which have been pre-fetched and the order by has been locally sorted. In such a scenario, all resources have been released (mClosed is true) but the deads are still alive.
Definition at line 128 of file qgsfeatureiterator.h.
|
protected |
reference counting (to allow seamless copying of QgsFeatureIterator instances) TODO QGIS3: make this private
Definition at line 132 of file qgsfeatureiterator.h.