QGIS API Documentation  3.6.0-Noosa (5873452)
qgsfeaturesink.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfeaturesink.cpp
3  ------------------
4  begin : April 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include "qgsfeaturestore.h"
19 
20 bool QgsFeatureSink::addFeature( QgsFeature &feature, QgsFeatureSink::Flags flags )
21 {
22  QgsFeatureList features;
23  features << feature;
24  bool result = addFeatures( features, flags );
25 
26  if ( !( flags & FastInsert ) )
27  {
28  // need to update the passed feature reference to the updated copy from the features list
29  feature = features.at( 0 );
30  }
31  return result;
32 }
33 
34 bool QgsFeatureSink::addFeatures( QgsFeatureIterator &iterator, QgsFeatureSink::Flags flags )
35 {
36  QgsFeature f;
37  bool result = true;
38  while ( iterator.nextFeature( f ) )
39  {
40  result = result && addFeature( f, flags );
41  }
42  return result;
43 }
44 
45 
47  : mSink( sink )
48 {}
Wrapper for iterator of features from vector data provider or vector layer.
Use faster inserts, at the cost of updating the passed features to reflect changes made at the provid...
QList< QgsFeature > QgsFeatureList
Definition: qgsfeature.h:571
An interface for objects which accept features via addFeature(s) methods.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:55
QgsProxyFeatureSink(QgsFeatureSink *sink)
Constructs a new QgsProxyFeatureSink which forwards features onto a destination sink.
virtual bool addFeature(QgsFeature &feature, QgsFeatureSink::Flags flags=nullptr)
Adds a single feature to the sink.
virtual bool addFeatures(QgsFeatureList &features, QgsFeatureSink::Flags flags=nullptr)=0
Adds a list of features to the sink.
bool nextFeature(QgsFeature &f)