QGIS API Documentation 3.41.0-Master (45a0abf3bec)
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
QgsFeatureSink Class Referenceabstract

An interface for objects which accept features via addFeature(s) methods. More...

#include <qgsfeaturesink.h>

Inheritance diagram for QgsFeatureSink:
Inheritance graph
[legend]

Public Types

enum  Flag { FastInsert = 1 << 1 , RollBackOnErrors = 1 << 2 }
 Flags controlling how features are added to a sink. More...
 
typedef QFlags< FlagFlags
 
enum  SinkFlag { RegeneratePrimaryKey = 1 << 1 }
 Flags that can be set on a QgsFeatureSink. More...
 
typedef QFlags< SinkFlagSinkFlags
 

Public Member Functions

virtual ~QgsFeatureSink ()=default
 
virtual bool addFeature (QgsFeature &feature, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags())
 Adds a single feature to the sink.
 
virtual bool addFeatures (QgsFeatureIterator &iterator, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags())
 Adds all features from the specified iterator to the sink.
 
virtual bool addFeatures (QgsFeatureList &features, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags())=0
 Adds a list of features to the sink.
 
virtual void finalize ()
 Finalizes the sink, flushing any buffered features to the destination.
 
virtual bool flushBuffer ()
 Flushes any internal buffer which may exist in the sink, causing any buffered features to be added to the sink's destination.
 
virtual QString lastError () const
 Returns the most recent error encountered by the sink, e.g.
 

Detailed Description

An interface for objects which accept features via addFeature(s) methods.

Definition at line 32 of file qgsfeaturesink.h.

Member Typedef Documentation

◆ Flags

typedef QFlags< Flag > QgsFeatureSink::Flags

Definition at line 79 of file qgsfeaturesink.h.

◆ SinkFlags

Definition at line 56 of file qgsfeaturesink.h.

Member Enumeration Documentation

◆ Flag

Flags controlling how features are added to a sink.

Enumerator
FastInsert 

Use faster inserts, at the cost of updating the passed features to reflect changes made at the provider.

This includes skipping the update of the passed feature IDs to match the resulting feature IDs for the feature within the data provider. Individual sink subclasses may or may not choose to respect this flag, depending on whether or not skipping this update represents a significant speed boost for the operation.

RollBackOnErrors 

Roll back the whole transaction if a single add feature operation fails.

Individual sink subclasses may choose to ignore this flag and always roll back while other providers will respect the flag and accept partial additions if this flag is not set.

Definition at line 59 of file qgsfeaturesink.h.

◆ SinkFlag

Flags that can be set on a QgsFeatureSink.

Not all sinks may implement all flags.

Since
QGIS 3.4
Enumerator
RegeneratePrimaryKey 

This flag indicates, that a primary key field cannot be guaranteed to be unique and the sink should ignore it if somehow possible.

This should for example be set for a geopackage file if the field "fid" has a risk to contain duplicate entries. In this case sinks like QgsVectorFileWriter or QgsVectorLayerExporter will prefer to regenerate the fid instead of trying to reuse the fids provided in addFeature calls.

Since
QGIS 3.4

Definition at line 41 of file qgsfeaturesink.h.

Constructor & Destructor Documentation

◆ ~QgsFeatureSink()

virtual QgsFeatureSink::~QgsFeatureSink ( )
virtualdefault

Member Function Documentation

◆ addFeature()

bool QgsFeatureSink::addFeature ( QgsFeature feature,
QgsFeatureSink::Flags  flags = QgsFeatureSink::Flags() 
)
virtual

Adds a single feature to the sink.

Feature addition behavior is controlled by the specified flags.

See also
addFeatures()
Returns
true in case of success and false in case of failure

Reimplemented in QgsVectorLayer, QgsVectorDataProviderFeaturePool, QgsVectorLayerFeaturePool, QgsProcessingFeatureSink, QgsFeatureStore, QgsProxyFeatureSink, QgsRemappingProxyFeatureSink, QgsSpatialIndex, QgsVectorFileWriter, and QgsVectorLayerExporter.

Definition at line 25 of file qgsfeaturesink.cpp.

◆ addFeatures() [1/2]

bool QgsFeatureSink::addFeatures ( QgsFeatureIterator iterator,
QgsFeatureSink::Flags  flags = QgsFeatureSink::Flags() 
)
virtual

Adds all features from the specified iterator to the sink.

Feature addition behavior is controlled by the specified flags.

Returns
true if all features were added successfully, or false if any feature could not be added

Reimplemented in QgsProcessingFeatureSink, QgsProxyFeatureSink, and QgsRemappingProxyFeatureSink.

Definition at line 39 of file qgsfeaturesink.cpp.

◆ addFeatures() [2/2]

virtual bool QgsFeatureSink::addFeatures ( QgsFeatureList features,
QgsFeatureSink::Flags  flags = QgsFeatureSink::Flags() 
)
pure virtual

Adds a list of features to the sink.

Feature addition behavior is controlled by the specified flags.

See also
addFeature()
Returns
true in case of success and false in case of failure

Implemented in QgsVectorLayer, QgsVectorDataProviderFeaturePool, QgsVectorLayerFeaturePool, QgsProcessingFeatureSink, QgsFeatureStore, QgsProxyFeatureSink, QgsRemappingProxyFeatureSink, QgsSpatialIndex, QgsVectorFileWriter, QgsVectorLayerExporter, QgsVectorLayerJoinBuffer, and QgsVectorDataProvider.

◆ finalize()

void QgsFeatureSink::finalize ( )
virtual

Finalizes the sink, flushing any buffered features to the destination.

Since
QGIS 3.42

Reimplemented in QgsProcessingFeatureSink, and QgsProxyFeatureSink.

Definition at line 20 of file qgsfeaturesink.cpp.

◆ flushBuffer()

virtual bool QgsFeatureSink::flushBuffer ( )
inlinevirtual

Flushes any internal buffer which may exist in the sink, causing any buffered features to be added to the sink's destination.

Returns
false if any buffered features could not be added to the sink.

Reimplemented in QgsProxyFeatureSink, and QgsVectorLayerExporter.

Definition at line 114 of file qgsfeaturesink.h.

◆ lastError()

virtual QString QgsFeatureSink::lastError ( ) const
inlinevirtual

Returns the most recent error encountered by the sink, e.g.

when a call to addFeatures() returns false.

Since
QGIS 3.16

Reimplemented in QgsProxyFeatureSink, QgsRemappingProxyFeatureSink, QgsVectorFileWriter, QgsVectorDataProvider, and QgsVectorLayerExporter.

Definition at line 121 of file qgsfeaturesink.h.


The documentation for this class was generated from the following files: