/usr/include/qgis/qgscachedfeatureiterator.h is in libqgis-dev 2.8.6+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /***************************************************************************
qgscachedfeatureiterator.h
--------------------------------------
Date : 12.2.2013
Copyright : (C) 2013 Matthias Kuhn
Email : matthias dot kuhn at gmx dot ch
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSCACHEDFEATUREITERATOR_H
#define QGSCACHEDFEATUREITERATOR_H
#include "qgsfeature.h"
#include "qgsfeatureiterator.h"
class QgsVectorLayerCache;
/**
* @brief
* Delivers features from the cache
*
*/
class CORE_EXPORT QgsCachedFeatureIterator : public QgsAbstractFeatureIterator
{
public:
/**
* This constructor creates a feature iterator, that delivers only cached information, based on the
* @link QgsFeatureIds @endlink. No request is made to the backend.
*
* @param vlCache The vector layer cache to use
* @param featureRequest The feature request to answer
* @param featureIds The feature ids to return
*
* @deprecated Use QgsCachedFeatureIterator( QgsVectorLayerCache* vlCache, QgsFeatureRequest featureRequest )
* instead
*/
QgsCachedFeatureIterator( QgsVectorLayerCache* vlCache, QgsFeatureRequest featureRequest, QgsFeatureIds featureIds );
/**
* This constructor creates a feature iterator, that delivers all cached features. No request is made to the backend.
*
* @param vlCache The vector layer cache to use
* @param featureRequest The feature request to answer
*/
QgsCachedFeatureIterator( QgsVectorLayerCache* vlCache, QgsFeatureRequest featureRequest );
/**
* Rewind to the beginning of the iterator
*
* @return bool true if the operation was ok
*/
virtual bool rewind() override;
/**
* Close this iterator. No further features will be available.
*
* @return true if successful
*/
virtual bool close() override;
// QgsAbstractFeatureIterator interface
protected:
/**
* Implementation for fetching a feature.
*
* @param f Will write to this feature
* @return bool true if the operation was ok
*
* @see bool getFeature( QgsFeature& f )
*/
virtual bool fetchFeature( QgsFeature& f ) override;
/**
* We have a local special iterator for FilterFids, no need to run the generic.
*
* @param f Will write to this feature
* @return bool true if the operation was ok
*/
virtual bool nextFeatureFilterFids( QgsFeature& f ) override { return fetchFeature( f ); }
private:
QgsFeatureIds mFeatureIds;
QgsVectorLayerCache* mVectorLayerCache;
QgsFeatureIds::ConstIterator mFeatureIdIterator;
};
/**
* @brief
* Uses another iterator as backend and writes features to the cache
*
*/
class CORE_EXPORT QgsCachedFeatureWriterIterator : public QgsAbstractFeatureIterator
{
public:
/**
* This constructor creates a feature iterator, which queries the backend and caches retrieved features.
*
* @param vlCache The vector layer cache to use
* @param featureRequest The feature request to answer
*/
QgsCachedFeatureWriterIterator( QgsVectorLayerCache* vlCache, QgsFeatureRequest featureRequest );
/**
* Rewind to the beginning of the iterator
*
* @return bool true if the operation was ok
*/
virtual bool rewind() override;
/**
* Close this iterator. No further features will be available.
*
* @return true if successful
*/
virtual bool close() override;
protected:
/**
* Implementation for fetching a feature.
*
* @param f Will write to this feature
* @return bool true if the operation was ok
*
* @see bool getFeature( QgsFeature& f )
*/
virtual bool fetchFeature( QgsFeature& f ) override;
private:
QgsFeatureIterator mFeatIt;
QgsVectorLayerCache* mVectorLayerCache;
QgsFeatureIds mFids;
};
#endif // QGSCACHEDFEATUREITERATOR_H
|