|
QGIS API Documentation
master-28efcda
|
#include <qgsvectorlayerfeatureiterator.h>
Inheritance diagram for QgsVectorLayerFeatureIterator:
Collaboration diagram for QgsVectorLayerFeatureIterator:Classes | |
| struct | FetchJoinInfo |
| Join information prepared for fast attribute id mapping in QgsVectorLayerJoinBuffer::updateFeatureAttributes(). More... | |
Public Member Functions | |
| QgsVectorLayerFeatureIterator (QgsVectorLayer *layer, const QgsFeatureRequest &request) | |
| ~QgsVectorLayerFeatureIterator () | |
| virtual bool | close () |
| end of iterating: free the resources / lock | |
| virtual bool | nextFeature (QgsFeature &feature) |
| fetch next feature, return true on success | |
| virtual bool | rewind () |
| reset the iterator to the starting position | |
Protected Member Functions | |
| void | addJoinedAttributes (QgsFeature &f) |
| bool | fetchNextAddedFeature (QgsFeature &f) |
| bool | fetchNextChangedGeomFeature (QgsFeature &f) |
| bool | nextFeatureFid (QgsFeature &f) |
| void | prepareJoins () |
| void | rewindEditBuffer () |
| void | useAddedFeature (const QgsFeature &src, QgsFeature &f) |
| void | useChangedAttributeFeature (QgsFeatureId fid, const QgsGeometry &geom, QgsFeature &f) |
Protected Attributes | |
| QgsVectorLayer * | L |
| QgsFeatureMap::iterator | mFetchAddedFeaturesIt |
| QgsGeometryMap::iterator | mFetchChangedGeomIt |
| QSet< QgsFeatureId > | mFetchConsidered |
| bool | mFetchedFid |
| QMap< QgsVectorLayer *, FetchJoinInfo > | mFetchJoinInfo |
| Informations about joins used in the current select() statement. | |
| QgsFeatureIterator | mProviderIterator |
| QgsFeatureRequest | mProviderRequest |
Definition at line 27 of file qgsvectorlayerfeatureiterator.h.
| QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator | ( | QgsVectorLayer * | layer, |
| const QgsFeatureRequest & | request | ||
| ) |
Definition at line 23 of file qgsvectorlayerfeatureiterator.cpp.
References QgsVectorLayerJoinBuffer::containsJoins(), QgsFields::count(), QgsVectorLayer::dataProvider(), QgsFields::fieldOrigin(), QgsFields::fieldOriginIndex(), QgsFeatureRequest::FilterFid, QgsFeatureRequest::filterType(), QgsFeatureRequest::flags(), QgsVectorDataProvider::getFeatures(), L, mFetchedFid, QgsVectorLayer::mJoinBuffer, mProviderIterator, mProviderRequest, QgsAbstractFeatureIterator::mRequest, QgsFields::OriginProvider, QgsVectorLayer::pendingFields(), prepareJoins(), rewindEditBuffer(), QgsFeatureRequest::setSubsetOfAttributes(), QgsFeatureRequest::SubsetOfAttributes, and QgsFeatureRequest::subsetOfAttributes().
Definition at line 66 of file qgsvectorlayerfeatureiterator.cpp.
References close().
| void QgsVectorLayerFeatureIterator::addJoinedAttributes | ( | QgsFeature & | f | ) | [protected] |
Definition at line 350 of file qgsvectorlayerfeatureiterator.cpp.
References QgsVectorLayerFeatureIterator::FetchJoinInfo::addJoinedAttributesCached(), QgsVectorLayerFeatureIterator::FetchJoinInfo::addJoinedAttributesDirect(), QgsFeature::attribute(), QgsFeature::attributes(), QgsVectorJoinInfo::cachedAttributes, QgsFields::count(), QgsVectorLayerFeatureIterator::FetchJoinInfo::joinInfo, L, mFetchJoinInfo, QgsVectorLayer::pendingFields(), and QgsVectorLayerFeatureIterator::FetchJoinInfo::targetField.
Referenced by nextFeature(), nextFeatureFid(), useAddedFeature(), and useChangedAttributeFeature().
| bool QgsVectorLayerFeatureIterator::close | ( | ) | [virtual] |
end of iterating: free the resources / lock
Implements QgsAbstractFeatureIterator.
Definition at line 153 of file qgsvectorlayerfeatureiterator.cpp.
References QgsFeatureIterator::close(), QgsAbstractFeatureIterator::mClosed, and mProviderIterator.
Referenced by nextFeature(), and ~QgsVectorLayerFeatureIterator().
| bool QgsVectorLayerFeatureIterator::fetchNextAddedFeature | ( | QgsFeature & | f | ) | [protected] |
Definition at line 167 of file qgsvectorlayerfeatureiterator.cpp.
References QgsVectorLayer::editBuffer(), QgsFeatureRequest::FilterRect, QgsFeatureRequest::filterRect(), QgsFeatureRequest::filterType(), L, QgsVectorLayerEditBuffer::mAddedFeatures, mFetchAddedFeaturesIt, mFetchConsidered, QgsAbstractFeatureIterator::mRequest, and useAddedFeature().
Referenced by nextFeature().
| bool QgsVectorLayerFeatureIterator::fetchNextChangedGeomFeature | ( | QgsFeature & | f | ) | [protected] |
Definition at line 214 of file qgsvectorlayerfeatureiterator.cpp.
References QgsVectorLayer::editBuffer(), QgsFeatureRequest::filterRect(), L, QgsVectorLayerEditBuffer::mChangedGeometries, mFetchChangedGeomIt, mFetchConsidered, QgsAbstractFeatureIterator::mRequest, and useChangedAttributeFeature().
Referenced by nextFeature().
| bool QgsVectorLayerFeatureIterator::nextFeature | ( | QgsFeature & | feature | ) | [virtual] |
fetch next feature, return true on success
Implements QgsAbstractFeatureIterator.
Definition at line 73 of file qgsvectorlayerfeatureiterator.cpp.
References addJoinedAttributes(), close(), QgsVectorLayer::editBuffer(), fetchNextAddedFeature(), fetchNextChangedGeomFeature(), QgsFeatureRequest::FilterFid, QgsFeatureRequest::FilterRect, QgsFeatureRequest::filterType(), QgsFeatureRequest::flags(), QgsFeature::id(), L, QgsAbstractFeatureIterator::mClosed, mFetchConsidered, mFetchedFid, mFetchJoinInfo, mProviderIterator, QgsAbstractFeatureIterator::mRequest, QgsVectorLayer::mUpdatedFields, QgsFeatureIterator::nextFeature(), nextFeatureFid(), QgsFeatureRequest::NoGeometry, QgsFeature::setFields(), QgsFeature::setValid(), QgsVectorLayerEditBuffer::updateChangedAttributes(), and QgsVectorLayerEditBuffer::updateFeatureGeometry().
| bool QgsVectorLayerFeatureIterator::nextFeatureFid | ( | QgsFeature & | f | ) | [protected] |
Definition at line 447 of file qgsvectorlayerfeatureiterator.cpp.
References addJoinedAttributes(), QgsVectorLayer::dataProvider(), QgsVectorLayer::editBuffer(), QgsFeatureRequest::filterFid(), QgsFeatureRequest::flags(), QgsVectorDataProvider::getFeatures(), L, QgsVectorLayerEditBuffer::mAddedFeatures, QgsVectorLayerEditBuffer::mChangedGeometries, QgsVectorLayerEditBuffer::mDeletedFeatureIds, mFetchJoinInfo, mProviderRequest, QgsAbstractFeatureIterator::mRequest, QgsFeatureIterator::nextFeature(), QgsFeatureRequest::NoGeometry, QgsVectorLayerEditBuffer::updateChangedAttributes(), useAddedFeature(), and useChangedAttributeFeature().
Referenced by nextFeature().
| void QgsVectorLayerFeatureIterator::prepareJoins | ( | ) | [protected] |
Definition at line 291 of file qgsvectorlayerfeatureiterator.cpp.
References QgsFields::fieldOrigin(), QgsFeatureRequest::flags(), QgsFields::indexFromName(), QgsVectorLayerFeatureIterator::FetchJoinInfo::indexOffset, QgsMapLayerRegistry::instance(), QgsVectorLayerFeatureIterator::FetchJoinInfo::joinField, QgsVectorJoinInfo::joinFieldIndex, QgsVectorJoinInfo::joinFieldName, QgsVectorLayerJoinBuffer::joinForFieldIndex(), QgsVectorLayerFeatureIterator::FetchJoinInfo::joinInfo, QgsVectorLayerFeatureIterator::FetchJoinInfo::joinLayer, QgsVectorJoinInfo::joinLayerId, L, QgsMapLayerRegistry::mapLayer(), mFetchJoinInfo, QgsVectorLayer::mJoinBuffer, QgsAbstractFeatureIterator::mRequest, QgsFields::OriginJoin, QgsVectorLayer::pendingAllAttributesList(), QgsVectorLayer::pendingFields(), QgsFeatureRequest::setSubsetOfAttributes(), QgsFeatureRequest::SubsetOfAttributes, QgsFeatureRequest::subsetOfAttributes(), QgsVectorLayerFeatureIterator::FetchJoinInfo::targetField, QgsVectorJoinInfo::targetFieldIndex, and QgsVectorJoinInfo::targetFieldName.
Referenced by QgsVectorLayerFeatureIterator().
| bool QgsVectorLayerFeatureIterator::rewind | ( | ) | [virtual] |
reset the iterator to the starting position
Implements QgsAbstractFeatureIterator.
Definition at line 135 of file qgsvectorlayerfeatureiterator.cpp.
References QgsFeatureRequest::FilterFid, QgsFeatureRequest::filterType(), QgsAbstractFeatureIterator::mClosed, mFetchedFid, mProviderIterator, QgsAbstractFeatureIterator::mRequest, QgsFeatureIterator::rewind(), and rewindEditBuffer().
| void QgsVectorLayerFeatureIterator::rewindEditBuffer | ( | ) | [protected] |
Definition at line 276 of file qgsvectorlayerfeatureiterator.cpp.
References QgsVectorLayer::editBuffer(), L, QgsVectorLayerEditBuffer::mAddedFeatures, QgsVectorLayerEditBuffer::mChangedGeometries, QgsVectorLayerEditBuffer::mDeletedFeatureIds, mFetchAddedFeaturesIt, mFetchChangedGeomIt, and mFetchConsidered.
Referenced by QgsVectorLayerFeatureIterator(), and rewind().
| void QgsVectorLayerFeatureIterator::useAddedFeature | ( | const QgsFeature & | src, |
| QgsFeature & | f | ||
| ) | [protected] |
Definition at line 195 of file qgsvectorlayerfeatureiterator.cpp.
References addJoinedAttributes(), QgsFeature::attributes(), QgsFeatureRequest::flags(), QgsFeature::geometry(), QgsFeature::id(), L, mFetchJoinInfo, QgsAbstractFeatureIterator::mRequest, QgsVectorLayer::mUpdatedFields, QgsFeatureRequest::NoGeometry, QgsFeature::setAttributes(), QgsFeature::setFeatureId(), QgsFeature::setFields(), QgsFeature::setGeometry(), and QgsFeature::setValid().
Referenced by fetchNextAddedFeature(), and nextFeatureFid().
| void QgsVectorLayerFeatureIterator::useChangedAttributeFeature | ( | QgsFeatureId | fid, |
| const QgsGeometry & | geom, | ||
| QgsFeature & | f | ||
| ) | [protected] |
Definition at line 244 of file qgsvectorlayerfeatureiterator.cpp.
References addJoinedAttributes(), QgsFeature::attributes(), QgsVectorLayer::dataProvider(), QgsVectorLayer::editBuffer(), QgsFeatureRequest::flags(), QgsVectorDataProvider::getFeatures(), L, mFetchJoinInfo, mProviderRequest, QgsAbstractFeatureIterator::mRequest, QgsVectorLayer::mUpdatedFields, QgsFeatureIterator::nextFeature(), QgsFeatureRequest::NoGeometry, QgsFeature::setAttributes(), QgsFeature::setFeatureId(), QgsFeature::setFields(), QgsFeatureRequest::setFilterFid(), QgsFeatureRequest::setFlags(), QgsFeature::setGeometry(), QgsFeatureRequest::setSubsetOfAttributes(), QgsFeature::setValid(), QgsFeatureRequest::SubsetOfAttributes, QgsFeatureRequest::subsetOfAttributes(), and QgsVectorLayerEditBuffer::updateChangedAttributes().
Referenced by fetchNextChangedGeomFeature(), and nextFeatureFid().
QgsVectorLayer* QgsVectorLayerFeatureIterator::L [protected] |
Definition at line 44 of file qgsvectorlayerfeatureiterator.h.
Referenced by addJoinedAttributes(), fetchNextAddedFeature(), fetchNextChangedGeomFeature(), nextFeature(), nextFeatureFid(), prepareJoins(), QgsVectorLayerFeatureIterator(), rewindEditBuffer(), useAddedFeature(), and useChangedAttributeFeature().
QgsFeatureMap::iterator QgsVectorLayerFeatureIterator::mFetchAddedFeaturesIt [protected] |
Definition at line 59 of file qgsvectorlayerfeatureiterator.h.
Referenced by fetchNextAddedFeature(), and rewindEditBuffer().
QgsGeometryMap::iterator QgsVectorLayerFeatureIterator::mFetchChangedGeomIt [protected] |
Definition at line 58 of file qgsvectorlayerfeatureiterator.h.
Referenced by fetchNextChangedGeomFeature(), and rewindEditBuffer().
QSet<QgsFeatureId> QgsVectorLayerFeatureIterator::mFetchConsidered [protected] |
Definition at line 57 of file qgsvectorlayerfeatureiterator.h.
Referenced by fetchNextAddedFeature(), fetchNextChangedGeomFeature(), nextFeature(), and rewindEditBuffer().
bool QgsVectorLayerFeatureIterator::mFetchedFid [protected] |
Definition at line 61 of file qgsvectorlayerfeatureiterator.h.
Referenced by nextFeature(), QgsVectorLayerFeatureIterator(), and rewind().
QMap<QgsVectorLayer*, FetchJoinInfo> QgsVectorLayerFeatureIterator::mFetchJoinInfo [protected] |
Informations about joins used in the current select() statement.
Allows faster mapping of attribute ids compared to mVectorJoins
Definition at line 91 of file qgsvectorlayerfeatureiterator.h.
Referenced by addJoinedAttributes(), nextFeature(), nextFeatureFid(), prepareJoins(), useAddedFeature(), and useChangedAttributeFeature().
Definition at line 47 of file qgsvectorlayerfeatureiterator.h.
Referenced by close(), nextFeature(), QgsVectorLayerFeatureIterator(), and rewind().
Definition at line 46 of file qgsvectorlayerfeatureiterator.h.
Referenced by nextFeatureFid(), QgsVectorLayerFeatureIterator(), and useChangedAttributeFeature().