QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
Classes | Public Types | Signals | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
QgsVectorDataProvider Class Referenceabstract

This is the base class for vector data providers. More...

#include <qgsvectordataprovider.h>

Inheritance diagram for QgsVectorDataProvider:
Inheritance graph
[legend]

Classes

struct  NativeType
 

Public Types

enum  Capability {
  NoCapabilities = 0, AddFeatures = 1, DeleteFeatures = 1 << 1, ChangeAttributeValues = 1 << 2,
  AddAttributes = 1 << 3, DeleteAttributes = 1 << 4, SaveAsShapefile = 1 << 5, CreateSpatialIndex = 1 << 6,
  SelectAtId = 1 << 7, ChangeGeometries = 1 << 8, SelectGeometryAtId = 1 << 9, RandomSelectGeometryAtId = 1 << 10,
  SequentialSelectGeometryAtId = 1 << 11, CreateAttributeIndex = 1 << 12, SelectEncoding = 1 << 13, SimplifyGeometries = 1 << 14,
  SimplifyGeometriesWithTopologicalValidation = 1 << 15, TransactionSupport = 1 << 16, CircularGeometries = 1 << 17, ChangeFeatures = 1 << 18,
  RenameAttributes = 1 << 19
}
 enumeration with capabilities that providers might implement More...
 
- Public Types inherited from QgsDataProvider
enum  DataCapability {
  NoDataCapabilities = 0, File = 1, Dir = 1 << 1, Database = 1 << 2,
  Net = 1 << 3
}
 
enum  ProviderProperty { EvaluateDefaultValues, CustomData = 3000 }
 Properties are used to pass custom configuration options into data providers. More...
 

Signals

void raiseError (const QString &msg)
 Signals an error in this provider. More...
 
- Signals inherited from QgsDataProvider
void dataChanged ()
 This is emitted whenever an asynchronous operation has finished and the data should be redrawn. More...
 
void dataChanged (int changed)
 This is emitted whenever data or metadata (e.g. More...
 
void fullExtentCalculated ()
 This is emitted whenever the worker thread has fully calculated the PostGIS extents for this layer, and its event has been received by this provider. More...
 

Public Member Functions

 QgsVectorDataProvider (const QString &uri=QString())
 Constructor of the vector provider. More...
 
virtual ~QgsVectorDataProvider ()
 Destructor. More...
 
virtual bool addAttributes (const QList< QgsField > &attributes)
 Adds new attributes. More...
 
virtual bool addFeatures (QgsFeatureList &flist)
 Adds a list of features. More...
 
virtual QVariant aggregate (QgsAggregateCalculator::Aggregate aggregate, int index, const QgsAggregateCalculator::AggregateParameters &parameters, QgsExpressionContext *context, bool &ok)
 Calculates an aggregated value from the layer's features. More...
 
virtual QgsAttributeList attributeIndexes ()
 Return list of indexes to fetch all attributes in nextFeature() More...
 
virtual int capabilities () const
 Returns a bitmask containing the supported capabilities Note, some capabilities may change depending on whether a spatial filter is active on this provider, so it may be prudent to check this value per intended operation. More...
 
QString capabilitiesString () const
 Returns the above in friendly format. More...
 
virtual bool changeAttributeValues (const QgsChangedAttributesMap &attr_map)
 Changes attribute values of existing features. More...
 
virtual bool changeFeatures (const QgsChangedAttributesMap &attr_map, const QgsGeometryMap &geometry_map)
 Changes attribute values and geometries of existing features. More...
 
virtual bool changeGeometryValues (const QgsGeometryMap &geometry_map)
 Changes geometries of existing features. More...
 
void clearErrors ()
 Clear recorded errors. More...
 
virtual bool createAttributeIndex (int field)
 Create an attribute index on the datasource. More...
 
virtual bool createSpatialIndex ()
 Creates a spatial index on the datasource (if supported by the provider type). More...
 
virtual QString dataComment () const
 Return a short comment for the data that this provider is providing access to (e.g. More...
 
virtual QVariant defaultValue (int fieldId, bool forceLazyEval=false)
 Returns the default value for field specified by fieldId. More...
 
virtual bool deleteAttributes (const QgsAttributeIds &attributes)
 Deletes existing attributes. More...
 
virtual bool deleteFeatures (const QgsFeatureIds &id)
 Deletes one or more features. More...
 
virtual bool doesStrictFeatureTypeCheck () const
 Returns true if the provider is strict about the type of inserted features (e.g. More...
 
QString encoding () const
 Get encoding which is used for accessing data. More...
 
virtual void enumValues (int index, QStringList &enumList)
 Returns the possible enum values of an attribute. More...
 
QStringList errors ()
 Get recorded errors. More...
 
virtual long featureCount () const =0
 Number of features in the layer. More...
 
virtual QgsAbstractFeatureSourcefeatureSource () const =0
 Return feature source object that can be used for querying provider's data. More...
 
int fieldNameIndex (const QString &fieldName) const
 Returns the index of a field name or -1 if the field does not exist. More...
 
QMap< QString, int > fieldNameMap () const
 Return a map where the key is the name of the field and the value is its index. More...
 
virtual const QgsFieldsfields () const =0
 Return a map of indexes with field names for this layer. More...
 
virtual void forceReload ()
 Forces a reload of the underlying datasource if the provider implements this method. More...
 
virtual QGis::WkbType geometryType () const =0
 Get feature type. More...
 
virtual QgsFeatureIterator getFeatures (const QgsFeatureRequest &request=QgsFeatureRequest())=0
 Query the provider for features specified in request. More...
 
bool hasErrors ()
 Provider has errors to report. More...
 
virtual bool isSaveAndLoadStyleToDBSupported ()
 It returns false by default. More...
 
virtual QSet< QStringlayerDependencies () const
 Get the list of layer ids on which this layer depends. More...
 
virtual QVariant maximumValue (int index)
 Returns the maximum value of an attribute. More...
 
virtual QVariant minimumValue (int index)
 Returns the minimum value of an attribute. More...
 
const QList< NativeType > & nativeTypes () const
 Returns the names of the supported types. More...
 
virtual QgsAttrPalIndexNameHash palAttributeIndexNames () const
 Return list of indexes to names for QgsPalLabeling fix. More...
 
virtual QgsAttributeList pkAttributeIndexes ()
 Return list of indexes of fields that make up the primary key. More...
 
virtual bool renameAttributes (const QgsFieldNameMap &renamedAttributes)
 Renames existing attributes. More...
 
virtual void setEncoding (const QString &e)
 Set encoding used for accessing data from layer. More...
 
virtual QString storageType () const
 Returns the permanent storage type for this layer as a friendly name. More...
 
bool supportedType (const QgsField &field) const
 check if provider supports type of field More...
 
virtual QgsTransactiontransaction () const
 Returns the transaction this data provider is included in, if any. More...
 
virtual void uniqueValues (int index, QList< QVariant > &uniqueValues, int limit=-1)
 Return unique values of an attribute. More...
 
- Public Member Functions inherited from QgsDataProvider
 QgsDataProvider (QString const &uri="")
 
virtual ~QgsDataProvider ()
 We need this so the subclass destructors get called. More...
 
virtual QgsCoordinateReferenceSystem crs ()=0
 Get the QgsCoordinateReferenceSystem for this layer. More...
 
virtual QString dataSourceUri (bool expandAuthConfig=false) const
 Get the data source specification. More...
 
virtual QDateTime dataTimestamp () const
 Current time stamp of data source. More...
 
virtual QString description () const =0
 Return description. More...
 
virtual bool enterUpdateMode ()
 Enter update mode. More...
 
virtual QgsError error () const
 Get current status error. More...
 
virtual QgsRectangle extent ()=0
 Get the extent of the layer. More...
 
virtual QString fileRasterFilters () const
 Return raster file filter string. More...
 
virtual QString fileVectorFilters () const
 Return vector file filter string. More...
 
virtual void invalidateConnections (const QString &connection)
 Invalidate connections corresponding to specified name. More...
 
virtual bool isValid ()=0
 Returns true if this is a valid layer. More...
 
virtual bool leaveUpdateMode ()
 Leave update mode. More...
 
virtual QString name () const =0
 Return a provider name. More...
 
QVariant providerProperty (ProviderProperty property, const QVariant &defaultValue=QVariant()) const
 Get the current value of a certain provider property. More...
 
QVariant providerProperty (int property, const QVariant &defaultValue) const
 Get the current value of a certain provider property. More...
 
virtual void reloadData ()
 Reloads the data from the source. More...
 
virtual void setDataSourceUri (const QString &uri)
 Set the data source specification. More...
 
virtual void setLayerOrder (const QStringList &layers)
 Reorder the list of layer names to be rendered by this provider (in order from bottom to top) More...
 
void setProviderProperty (ProviderProperty property, const QVariant &value)
 Allows setting arbitrary properties on the provider. More...
 
void setProviderProperty (int property, const QVariant &value)
 Allows setting arbitrary properties on the provider. More...
 
virtual void setSubLayerVisibility (const QString &name, bool vis)
 Set the visibility of the given sublayer name. More...
 
virtual bool setSubsetString (const QString &subset, bool updateFeatureCount=true)
 Set the subset string used to create a subset of features in the layer. More...
 
virtual uint subLayerCount () const
 return the number of layers for the current data source More...
 
virtual QStringList subLayers () const
 Sub-layers handled by this provider, in order from bottom to top. More...
 
virtual QStringList subLayerStyles () const
 Sub-layer styles for each sub-layer handled by this provider, in order from bottom to top. More...
 
virtual QString subsetString ()
 Returns the subset definition string (typically sql) currently in use by the layer and used by the provider to limit the feature set. More...
 
virtual bool supportsSubsetString ()
 Provider supports setting of subset strings. More...
 
virtual QDateTime timestamp () const
 Time stamp of data source in the moment when data/metadata were loaded by provider. More...
 
virtual void updateExtents ()
 Update the extents of the layer. More...
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
virtual ~QObject ()
 
bool blockSignals (bool block)
 
QObjectchild (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThreadthread () const
 

Static Public Member Functions

static const QStringListavailableEncodings ()
 Returns a list of available encodings. More...
 
static QVariant convertValue (QVariant::Type type, const QString &value)
 
- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Static Public Attributes

static const int EditingCapabilities
 Bitmask of all provider's editing capabilities. More...
 

Protected Member Functions

void clearMinMaxCache ()
 
QgsGeometryconvertToProviderType (const QgsGeometry *geom) const
 Converts the geometry to the provider type if possible / necessary this is the list of possible modifications: More...
 
void fillMinMaxCache ()
 
void pushError (const QString &msg)
 
- Protected Member Functions inherited from QgsDataProvider
void appendError (const QgsErrorMessage &theMessage)
 Add error message. More...
 
void setError (const QgsError &theError)
 Set error message. More...
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Protected Attributes

QgsAttributeList mAttributesToFetch
 List of attribute indices to fetch with nextFeature calls. More...
 
QgsAttrPalIndexNameHash mAttrPalIndexName
 Old-style mapping of index to name for QgsPalLabeling fix. More...
 
QMap< int, QVariantmCacheMaxValues
 
bool mCacheMinMaxDirty
 
QMap< int, QVariantmCacheMinValues
 
QTextCodecmEncoding
 Encoding. More...
 
QList< NativeTypemNativeTypes
 The names of the providers native types. More...
 
- Protected Attributes inherited from QgsDataProvider
QgsError mError
 Error. More...
 
QDateTime mTimestamp
 Timestamp of data in the moment when the data were loaded by provider. More...
 

Friends

class QgsTransaction
 
class QgsVectorLayerEditBuffer
 

Additional Inherited Members

- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

This is the base class for vector data providers.

Data providers abstract the retrieval and writing (where supported) of feature and attribute information from a spatial datasource.

Definition at line 50 of file qgsvectordataprovider.h.

Member Enumeration Documentation

◆ Capability

enumeration with capabilities that providers might implement

Enumerator
NoCapabilities 

Provider has no capabilities.

AddFeatures 

Allows adding features.

DeleteFeatures 

Allows deletion of features.

ChangeAttributeValues 

Allows modification of attribute values.

AddAttributes 

Allows addition of new attributes (fields)

DeleteAttributes 

Allows deletion of attributes (fields)

SaveAsShapefile 

DEPRECATED - do not use.

CreateSpatialIndex 

Allows creation of spatial index.

SelectAtId 

Fast access to features using their ID.

ChangeGeometries 

Allows modifications of geometries.

SelectGeometryAtId 

DEPRECATED - do not use.

RandomSelectGeometryAtId 

DEPRECATED - do not use.

SequentialSelectGeometryAtId 

DEPRECATED - do not use.

CreateAttributeIndex 

DEPRECATED - do not use.

SelectEncoding 

Allows user to select encoding.

SimplifyGeometries 

Supports simplification of geometries on provider side according to a distance tolerance.

SimplifyGeometriesWithTopologicalValidation 

Supports topological simplification of geometries on provider side according to a distance tolerance.

TransactionSupport 

Supports transactions.

CircularGeometries 

Supports circular geometry types (circularstring, compoundcurve, curvepolygon)

ChangeFeatures 

Supports joint updates for attributes and geometry Providers supporting this should still define ChangeGeometries | ChangeAttributeValues.

RenameAttributes 

Supports renaming attributes (fields).

Added in QGIS 2.16

Definition at line 63 of file qgsvectordataprovider.h.

Constructor & Destructor Documentation

◆ QgsVectorDataProvider()

QgsVectorDataProvider::QgsVectorDataProvider ( const QString uri = QString())

Constructor of the vector provider.

Parameters
uriuniform resource locator (URI) for a dataset

Definition at line 36 of file qgsvectordataprovider.cpp.

◆ ~QgsVectorDataProvider()

QgsVectorDataProvider::~QgsVectorDataProvider ( )
virtual

Destructor.

Definition at line 46 of file qgsvectordataprovider.cpp.

Member Function Documentation

◆ addAttributes()

bool QgsVectorDataProvider::addAttributes ( const QList< QgsField > &  attributes)
virtual

Adds new attributes.

Parameters
attributeslist of new attributes
Returns
true in case of success and false in case of failure

Definition at line 72 of file qgsvectordataprovider.cpp.

◆ addFeatures()

bool QgsVectorDataProvider::addFeatures ( QgsFeatureList flist)
virtual

Adds a list of features.

Returns
true in case of success and false in case of failure

Definition at line 60 of file qgsvectordataprovider.cpp.

◆ aggregate()

QVariant QgsVectorDataProvider::aggregate ( QgsAggregateCalculator::Aggregate  aggregate,
int  index,
const QgsAggregateCalculator::AggregateParameters parameters,
QgsExpressionContext context,
bool &  ok 
)
virtual

Calculates an aggregated value from the layer's features.

The base implementation does nothing, but subclasses can override this method to handoff calculation of aggregates to the provider.

Parameters
aggregateaggregate to calculate
indexthe index of the attribute to calculate aggregate over
parametersparameters controlling aggregate calculation
contextexpression context for filter
okwill be set to true if calculation was successfully performed by the data provider
Returns
calculated aggregate value
Note
added in QGIS 2.16

Definition at line 415 of file qgsvectordataprovider.cpp.

◆ attributeIndexes()

QgsAttributeList QgsVectorDataProvider::attributeIndexes ( )
virtual

Return list of indexes to fetch all attributes in nextFeature()

Definition at line 282 of file qgsvectordataprovider.cpp.

◆ availableEncodings()

const QStringList & QgsVectorDataProvider::availableEncodings ( )
static

Returns a list of available encodings.

Definition at line 535 of file qgsvectordataprovider.cpp.

◆ capabilities()

int QgsVectorDataProvider::capabilities ( ) const
virtual

Returns a bitmask containing the supported capabilities Note, some capabilities may change depending on whether a spatial filter is active on this provider, so it may be prudent to check this value per intended operation.

Definition at line 128 of file qgsvectordataprovider.cpp.

◆ capabilitiesString()

QString QgsVectorDataProvider::capabilitiesString ( ) const

Returns the above in friendly format.

Definition at line 163 of file qgsvectordataprovider.cpp.

◆ changeAttributeValues()

bool QgsVectorDataProvider::changeAttributeValues ( const QgsChangedAttributesMap attr_map)
virtual

Changes attribute values of existing features.

Parameters
attr_mapa map containing changed attributes
Returns
true in case of success and false in case of failure

Definition at line 90 of file qgsvectordataprovider.cpp.

◆ changeFeatures()

bool QgsVectorDataProvider::changeFeatures ( const QgsChangedAttributesMap attr_map,
const QgsGeometryMap geometry_map 
)
virtual

Changes attribute values and geometries of existing features.

Parameters
attr_mapa map containing changed attributes
geometry_mapA QgsGeometryMap whose index contains the feature IDs that will have their geometries changed. The second map parameter being the new geometries themselves
Returns
true in case of success and false in case of failure

Definition at line 109 of file qgsvectordataprovider.cpp.

◆ changeGeometryValues()

bool QgsVectorDataProvider::changeGeometryValues ( const QgsGeometryMap geometry_map)
virtual

Changes geometries of existing features.

Parameters
geometry_mapA QgsGeometryMap whose index contains the feature IDs that will have their geometries changed. The second map parameter being the new geometries themselves
Returns
True in case of success and false in case of failure

Definition at line 103 of file qgsvectordataprovider.cpp.

◆ clearErrors()

void QgsVectorDataProvider::clearErrors ( )

Clear recorded errors.

Definition at line 598 of file qgsvectordataprovider.cpp.

◆ clearMinMaxCache()

void QgsVectorDataProvider::clearMinMaxCache ( )
protected

Definition at line 428 of file qgsvectordataprovider.cpp.

◆ convertToProviderType()

QgsGeometry * QgsVectorDataProvider::convertToProviderType ( const QgsGeometry geom) const
protected

Converts the geometry to the provider type if possible / necessary this is the list of possible modifications:

  • convert compoundcurve to circularstring (possible if compoundcurve consists of one circular string)
  • convert to multitype if necessary
  • convert to curved type if necessary
  • convert to linear type from curved type
  • Add z/m 0 default values
  • Remove z/m QgsVectorLayerEditBuffer::adaptGeometry()
    Parameters
    geomGeometry to convert
    Returns
    the converted geometry or nullptr if no conversion was necessary or possible

Definition at line 625 of file qgsvectordataprovider.cpp.

◆ convertValue()

QVariant QgsVectorDataProvider::convertValue ( QVariant::Type  type,
const QString value 
)
static

Definition at line 520 of file qgsvectordataprovider.cpp.

◆ createAttributeIndex()

bool QgsVectorDataProvider::createAttributeIndex ( int  field)
virtual

Create an attribute index on the datasource.

Definition at line 122 of file qgsvectordataprovider.cpp.

◆ createSpatialIndex()

bool QgsVectorDataProvider::createSpatialIndex ( )
virtual

Creates a spatial index on the datasource (if supported by the provider type).

Returns
true in case of success

Definition at line 117 of file qgsvectordataprovider.cpp.

◆ dataComment()

QString QgsVectorDataProvider::dataComment ( ) const
virtual

Return a short comment for the data that this provider is providing access to (e.g.

the comment for postgres table).

Definition at line 55 of file qgsvectordataprovider.cpp.

◆ defaultValue()

QVariant QgsVectorDataProvider::defaultValue ( int  fieldId,
bool  forceLazyEval = false 
)
virtual

Returns the default value for field specified by fieldId.

If forceLazyEval is set to true, the provider the default value will not be evaluated on server side even if specified in the project properties.

Definition at line 96 of file qgsvectordataprovider.cpp.

◆ deleteAttributes()

bool QgsVectorDataProvider::deleteAttributes ( const QgsAttributeIds attributes)
virtual

Deletes existing attributes.

Parameters
attributesa set containing indices of attributes
Returns
true in case of success and false in case of failure

Definition at line 78 of file qgsvectordataprovider.cpp.

◆ deleteFeatures()

bool QgsVectorDataProvider::deleteFeatures ( const QgsFeatureIds id)
virtual

Deletes one or more features.

Parameters
idlist containing feature ids to delete
Returns
true in case of success and false in case of failure

Definition at line 66 of file qgsvectordataprovider.cpp.

◆ doesStrictFeatureTypeCheck()

virtual bool QgsVectorDataProvider::doesStrictFeatureTypeCheck ( ) const
inlinevirtual

Returns true if the provider is strict about the type of inserted features (e.g.

no multipolygon in a polygon layer)

Definition at line 395 of file qgsvectordataprovider.h.

◆ encoding()

QString QgsVectorDataProvider::encoding ( ) const

Get encoding which is used for accessing data.

Definition at line 153 of file qgsvectordataprovider.cpp.

◆ enumValues()

virtual void QgsVectorDataProvider::enumValues ( int  index,
QStringList enumList 
)
inlinevirtual

Returns the possible enum values of an attribute.

Returns an empty stringlist if a provider does not support enum types or if the given attribute is not an enum type.

Parameters
indexthe index of the attribute
enumListreference to the list to fill

Definition at line 233 of file qgsvectordataprovider.h.

◆ errors()

QStringList QgsVectorDataProvider::errors ( )

Get recorded errors.

Definition at line 608 of file qgsvectordataprovider.cpp.

◆ featureCount()

virtual long QgsVectorDataProvider::featureCount ( ) const
pure virtual

Number of features in the layer.

Returns
long containing number of features

◆ featureSource()

virtual QgsAbstractFeatureSource* QgsVectorDataProvider::featureSource ( ) const
pure virtual

Return feature source object that can be used for querying provider's data.

The returned feature source is independent from provider - any changes to provider's state (e.g. change of subset string) will not be reflected in the feature source, therefore it can be safely used for processing in background without having to care about possible changes within provider that may happen concurrently. Also, even in the case of provider being deleted, any feature source obtained from the provider will be kept alive and working (they are independent and owned by the caller).

Sometimes there are cases when some data needs to be shared between vector data provider and its feature source. In such cases, the implementation must ensure that the data is not susceptible to run condition. For example, if it is possible that both feature source and provider may need reading/writing to some shared data at the same time, some synchronization mechanisms must be used (e.g. mutexes) to prevent data corruption.

Note
added in 2.4
Returns
new instance of QgsAbstractFeatureSource (caller is responsible for deleting it)

◆ fieldNameIndex()

int QgsVectorDataProvider::fieldNameIndex ( const QString fieldName) const

Returns the index of a field name or -1 if the field does not exist.

Definition at line 264 of file qgsvectordataprovider.cpp.

◆ fieldNameMap()

QMap< QString, int > QgsVectorDataProvider::fieldNameMap ( ) const

Return a map where the key is the name of the field and the value is its index.

Definition at line 269 of file qgsvectordataprovider.cpp.

◆ fields()

virtual const QgsFields& QgsVectorDataProvider::fields ( ) const
pure virtual

Return a map of indexes with field names for this layer.

Returns
map of fields
See also
QgsFields

◆ fillMinMaxCache()

void QgsVectorDataProvider::fillMinMaxCache ( )
protected

Definition at line 433 of file qgsvectordataprovider.cpp.

◆ forceReload()

virtual void QgsVectorDataProvider::forceReload ( )
inlinevirtual

Forces a reload of the underlying datasource if the provider implements this method.

In particular on the OGR provider, a pooled connection will be invalidated. This forces QGIS to reopen a file or connection. This can be required if the underlying file is replaced.

Definition at line 436 of file qgsvectordataprovider.h.

◆ geometryType()

virtual QGis::WkbType QgsVectorDataProvider::geometryType ( ) const
pure virtual

Get feature type.

Returns
int representing the feature type

◆ getFeatures()

virtual QgsFeatureIterator QgsVectorDataProvider::getFeatures ( const QgsFeatureRequest request = QgsFeatureRequest())
pure virtual

Query the provider for features specified in request.

◆ hasErrors()

bool QgsVectorDataProvider::hasErrors ( )

Provider has errors to report.

Definition at line 603 of file qgsvectordataprovider.cpp.

◆ isSaveAndLoadStyleToDBSupported()

virtual bool QgsVectorDataProvider::isSaveAndLoadStyleToDBSupported ( )
inlinevirtual

It returns false by default.

Must be implemented by providers that support saving and loading styles to db returning true

Definition at line 420 of file qgsvectordataprovider.h.

◆ layerDependencies()

QSet< QString > QgsVectorDataProvider::layerDependencies ( ) const
virtual

Get the list of layer ids on which this layer depends.

This in particular determines the order of layer loading.

Definition at line 620 of file qgsvectordataprovider.cpp.

◆ maximumValue()

QVariant QgsVectorDataProvider::maximumValue ( int  index)
virtual

Returns the maximum value of an attribute.

Parameters
indexthe index of the attribute

Default implementation walks all numeric attributes and caches minimal and maximal values. If provider has facilities to retrieve maximal value directly, override this function.

Definition at line 376 of file qgsvectordataprovider.cpp.

◆ minimumValue()

QVariant QgsVectorDataProvider::minimumValue ( int  index)
virtual

Returns the minimum value of an attribute.

Parameters
indexthe index of the attribute

Default implementation walks all numeric attributes and caches minimal and maximal values. If provider has facilities to retrieve minimal value directly, override this function.

Definition at line 360 of file qgsvectordataprovider.cpp.

◆ nativeTypes()

const QList< QgsVectorDataProvider::NativeType > & QgsVectorDataProvider::nativeTypes ( ) const

Returns the names of the supported types.

Definition at line 287 of file qgsvectordataprovider.cpp.

◆ palAttributeIndexNames()

virtual QgsAttrPalIndexNameHash QgsVectorDataProvider::palAttributeIndexNames ( ) const
inlinevirtual

Return list of indexes to names for QgsPalLabeling fix.

Definition at line 358 of file qgsvectordataprovider.h.

◆ pkAttributeIndexes()

virtual QgsAttributeList QgsVectorDataProvider::pkAttributeIndexes ( )
inlinevirtual

Return list of indexes of fields that make up the primary key.

Definition at line 353 of file qgsvectordataprovider.h.

◆ pushError()

void QgsVectorDataProvider::pushError ( const QString msg)
protected

Definition at line 613 of file qgsvectordataprovider.cpp.

◆ raiseError

void QgsVectorDataProvider::raiseError ( const QString msg)
signal

Signals an error in this provider.

◆ renameAttributes()

bool QgsVectorDataProvider::renameAttributes ( const QgsFieldNameMap renamedAttributes)
virtual

Renames existing attributes.

Parameters
renamedAttributesmap of attribute index to new attribute name
Returns
true in case of success and false in case of failure
Note
added in QGIS 2.16

Definition at line 84 of file qgsvectordataprovider.cpp.

◆ setEncoding()

void QgsVectorDataProvider::setEncoding ( const QString e)
virtual

Set encoding used for accessing data from layer.

Definition at line 134 of file qgsvectordataprovider.cpp.

◆ storageType()

QString QgsVectorDataProvider::storageType ( ) const
virtual

Returns the permanent storage type for this layer as a friendly name.

Definition at line 50 of file qgsvectordataprovider.cpp.

◆ supportedType()

bool QgsVectorDataProvider::supportedType ( const QgsField field) const

check if provider supports type of field

Definition at line 292 of file qgsvectordataprovider.cpp.

◆ transaction()

virtual QgsTransaction* QgsVectorDataProvider::transaction ( ) const
inlinevirtual

Returns the transaction this data provider is included in, if any.

Definition at line 427 of file qgsvectordataprovider.h.

◆ uniqueValues()

void QgsVectorDataProvider::uniqueValues ( int  index,
QList< QVariant > &  uniqueValues,
int  limit = -1 
)
virtual

Return unique values of an attribute.

Parameters
indexthe index of the attribute
uniqueValuesvalues reference to the list to fill
limitmaxmum number of the values to return

Default implementation simply iterates the features

Definition at line 392 of file qgsvectordataprovider.cpp.

Friends And Related Function Documentation

◆ QgsTransaction

friend class QgsTransaction
friend

Definition at line 54 of file qgsvectordataprovider.h.

◆ QgsVectorLayerEditBuffer

friend class QgsVectorLayerEditBuffer
friend

Definition at line 55 of file qgsvectordataprovider.h.

Member Data Documentation

◆ EditingCapabilities

const int QgsVectorDataProvider::EditingCapabilities
static
Initial value:

Bitmask of all provider's editing capabilities.

Definition at line 112 of file qgsvectordataprovider.h.

◆ mAttributesToFetch

QgsAttributeList QgsVectorDataProvider::mAttributesToFetch
protected

List of attribute indices to fetch with nextFeature calls.

Definition at line 461 of file qgsvectordataprovider.h.

◆ mAttrPalIndexName

QgsAttrPalIndexNameHash QgsVectorDataProvider::mAttrPalIndexName
protected

Old-style mapping of index to name for QgsPalLabeling fix.

Definition at line 469 of file qgsvectordataprovider.h.

◆ mCacheMaxValues

QMap<int, QVariant> QgsVectorDataProvider::mCacheMaxValues
protected

Definition at line 455 of file qgsvectordataprovider.h.

◆ mCacheMinMaxDirty

bool QgsVectorDataProvider::mCacheMinMaxDirty
protected

Definition at line 454 of file qgsvectordataprovider.h.

◆ mCacheMinValues

QMap<int, QVariant> QgsVectorDataProvider::mCacheMinValues
protected

Definition at line 455 of file qgsvectordataprovider.h.

◆ mEncoding

QTextCodec* QgsVectorDataProvider::mEncoding
protected

Encoding.

Definition at line 458 of file qgsvectordataprovider.h.

◆ mNativeTypes

QList< NativeType > QgsVectorDataProvider::mNativeTypes
protected

The names of the providers native types.

Definition at line 464 of file qgsvectordataprovider.h.


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