Skip to content

Commit

Permalink
Add a QgsFeatureSink interface for classes which accept adding features
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Apr 26, 2017
1 parent 13b4472 commit 3633363
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 0 deletions.
1 change: 1 addition & 0 deletions python/core/core.sip
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
%Include qgsfeaturefilterprovider.sip
%Include qgsfeatureiterator.sip
%Include qgsfeaturerequest.sip
%Include qgsfeaturesink.sip
%Include qgsfeedback.sip
%Include qgsfield.sip
%Include qgsfieldconstraints.sip
Expand Down
49 changes: 49 additions & 0 deletions python/core/qgsfeaturesink.sip
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturesink.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/




class QgsFeatureSink
{
%Docstring
An interface for objects which accept features via addFeature(s) methods.

.. versionadded:: 3.0
%End

%TypeHeaderCode
#include "qgsfeaturesink.h"
%End
public:

virtual ~QgsFeatureSink();

virtual bool addFeature( QgsFeature &feature ) = 0;
%Docstring
Adds a single ``feature`` to the sink.
\see addFeatures()
:rtype: bool
%End

virtual bool addFeatures( QgsFeatureList &features ) = 0;
%Docstring
Adds a list of ``features`` to the sink.
\see addFeature()
:rtype: bool
%End

};

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturesink.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
1 change: 1 addition & 0 deletions src/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,7 @@ SET(QGIS_CORE_HDRS
qgsfeaturefilterprovider.h
qgsfeatureiterator.h
qgsfeaturerequest.h
qgsfeaturesink.h
qgsfeaturestore.h
qgsfieldformatter.h
qgsfield_p.h
Expand Down
52 changes: 52 additions & 0 deletions src/core/qgsfeaturesink.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/***************************************************************************
qgsfeaturesink.h
----------------
begin : April 2017
copyright : (C) 2017 by Nyall Dawson
email : nyall dot dawson at gmail dot com
***************************************************************************/

/***************************************************************************
* *
* 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 QGSFEATURESINK_H
#define QGSFEATURESINK_H

#include "qgis_core.h"
#include "qgis.h"
#include "qgsfeature.h"

/**
* \class QgsFeatureSink
* \ingroup core
* An interface for objects which accept features via addFeature(s) methods.
*
* \since QGIS 3.0
*/
class CORE_EXPORT QgsFeatureSink
{
public:

virtual ~QgsFeatureSink() = default;

/**
* Adds a single \a feature to the sink.
* \see addFeatures()
*/
virtual bool addFeature( QgsFeature &feature ) = 0;

/**
* Adds a list of \a features to the sink.
* \see addFeature()
*/
virtual bool addFeatures( QgsFeatureList &features ) = 0;

};

#endif // QGSFEATURESINK_H

0 comments on commit 3633363

Please sign in to comment.