18 #ifndef QGSPROCESSINGCONTEXT_H 19 #define QGSPROCESSINGCONTEXT_H 21 #include "qgis_core.h" 52 Q_DECLARE_FLAGS( Flags,
Flag )
59 auto callback = [ = ](
const QgsFeature & feature )
62 mFeedback->reportError( QObject::tr(
"Encountered a transform error when reprojecting feature with id %1." ).arg( feature.id() ) );
64 mTransformErrorCallback = callback;
80 mFlags = other.mFlags;
81 mProject = other.mProject;
82 mTransformContext = other.mTransformContext;
83 mExpressionContext = other.mExpressionContext;
84 mInvalidGeometryCallback = other.mInvalidGeometryCallback;
85 mInvalidGeometryCheck = other.mInvalidGeometryCheck;
86 mTransformErrorCallback = other.mTransformErrorCallback;
87 mDefaultEncoding = other.mDefaultEncoding;
88 mFeedback = other.mFeedback;
95 QgsProcessingContext::Flags
flags()
const {
return mFlags; }
101 void setFlags( QgsProcessingContext::Flags flags ) { mFlags = flags; }
175 , outputName( outputName )
176 , layerTypeHint( layerTypeHint )
232 return mLayersToLoadOnCompletion;
246 return mLayersToLoadOnCompletion.contains( layer );
256 void setLayersToLoadOnCompletion(
const QMap< QString, QgsProcessingContext::LayerDetails > &layers );
283 return mLayersToLoadOnCompletion[ layer ];
310 void setInvalidGeometryCallback( SIP_PYCALLABLE / AllowNone / );
312 Py_BEGIN_ALLOW_THREADS
314 sipCpp->setInvalidGeometryCallback( [a0](
const QgsFeature &arg )
317 Py_XDECREF( sipCallMethod( NULL, a0,
"D", &arg, sipType_QgsFeature, NULL ) );
344 void setTransformErrorCallback( SIP_PYCALLABLE / AllowNone / );
346 Py_BEGIN_ALLOW_THREADS
348 sipCpp->setTransformErrorCallback( [a0](
const QgsFeature &arg )
351 Py_XDECREF( sipCallMethod( NULL, a0,
"D", &arg, sipType_QgsFeature, NULL ) );
400 QThread *
thread() {
return tempLayerStore.thread(); }
410 Q_ASSERT_X( QThread::currentThread() ==
QgsProcessingContext::thread(),
"QgsProcessingContext::pushToThread",
"Cannot push context to another thread unless the current thread matches the existing context thread affinity" );
411 tempLayerStore.moveToThread( thread );
433 QgsMapLayer *getMapLayer(
const QString &identifier );
447 QgsProcessingContext::Flags mFlags =
nullptr;
448 QPointer< QgsProject > mProject;
454 std::function< void( const QgsFeature & ) > mInvalidGeometryCallback;
455 std::function< void( const QgsFeature & ) > mTransformErrorCallback;
456 QString mDefaultEncoding;
457 QMap< QString, LayerDetails > mLayersToLoadOnCompletion;
459 QPointer< QgsProcessingFeedback > mFeedback;
466 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingContext::Flags )
485 virtual ~QgsProcessingLayerPostProcessorInterface() =
default;
506 #endif // QGSPROCESSINGPARAMETERS_H QgsProject * project() const
Returns the project in which the algorithm is being executed.
void setProject(QgsProject *project)
Sets the project in which the algorithm will be executed.
Base class for all map layer types.
QMap< QString, QgsProcessingContext::LayerDetails > layersToLoadOnCompletion() const
Returns a map of layers (by ID or datasource) to LayerDetails, to load into the canvas upon completio...
std::function< void(const QgsFeature &) > transformErrorCallback() const
Returns the callback function to use when encountering a transform error when iterating features...
Base class for providing feedback from a processing algorithm.
An interface for layer post-processing handlers for execution following a processing algorithm operat...
void setInvalidGeometryCallback(const std::function< void(const QgsFeature &) > &callback)
Sets a callback function to use when encountering an invalid geometry and invalidGeometryCheck() is s...
LayerHint
Layer type hints.
bool willLoadLayerOnCompletion(const QString &layer) const
Returns true if the given layer (by ID or datasource) will be loaded into the current project upon co...
QThread * thread()
Returns the thread in which the context lives.
void pushToThread(QThread *thread)
Pushes the thread affinity for the context (including all layers contained in the temporaryLayerStore...
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
InvalidGeometryCheck
Handling of features with invalid geometries.
QString name
Friendly name for layer, to use when loading layer into project.
QgsProcessingFeedback * feedback()
Returns the associated feedback object.
QString defaultEncoding() const
Returns the default encoding to use for newly created files.
void setTransformErrorCallback(const std::function< void(const QgsFeature &) > &callback)
Sets a callback function to use when encountering a transform error when iterating features...
QgsMapLayerStore * temporaryLayerStore()
Returns a reference to the layer store used for storing temporary layers during algorithm execution...
QgsFeatureRequest::InvalidGeometryCheck invalidGeometryCheck() const
Returns the behavior used for checking invalid geometries in input layers.
void copyThreadSafeSettings(const QgsProcessingContext &other)
Copies all settings which are safe for use across different threads from other to this context...
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
void setExpressionContext(const QgsExpressionContext &context)
Sets the expression context.
void setDefaultEncoding(const QString &encoding)
Sets the default encoding to use for newly created files.
LayerDetails(const QString &name, QgsProject *project, const QString &outputName=QString(), QgsProcessingUtils::LayerHint layerTypeHint=QgsProcessingUtils::UnknownType)
Constructor for LayerDetails.
Reads and writes project states.
No invalid geometry checking.
void setFeedback(QgsProcessingFeedback *feedback)
Sets an associated feedback object.
QString outputName
Associated output name from algorithm which generated the layer.
Contains information about the context in which a coordinate transform is executed.
std::function< void(const QgsFeature &) > invalidGeometryCallback() const
Returns the callback function to use when encountering an invalid geometry and invalidGeometryCheck()...
Details for layers to load into projects.
QgsExpressionContext & expressionContext()
Returns the expression context.
QgsProcessingContext::Flags flags() const
Returns any flags set in the context.
const QgsExpressionContext & expressionContext() const
Returns the expression context.
QgsCoordinateTransformContext transformContext
QgsProcessingContext::LayerDetails & layerToLoadOnCompletionDetails(const QString &layer)
Returns a reference to the details for a given layer which is loaded on completion of the algorithm o...
void setTransformContext(const QgsCoordinateTransformContext &context)
Sets the coordinate transform context.
QgsCoordinateTransformContext transformContext() const
Returns the coordinate transform context.
void setFlags(QgsProcessingContext::Flags flags)
Sets flags for the context.
A storage object for map layers, in which the layers are owned by the store and have their lifetime b...
Contains information about the context in which a processing algorithm is executed.
Flag
Flags that affect how processing algorithms are run.