Extended processor/kernel concept. More...
#include "IProcessorEx.hpp"
Public Member Functions | |
virtual void | setControlObject (ControlObjectHandle control)=0 |
set and optional control object | |
virtual ControlObjectHandle | getControlObject () const =0 |
get the current control object | |
virtual void | runThreaded (IKernelBase &kernel, int threads=0, MessageOutputHandle messageOutput=MessageOutputHandle(), bool forwardGDALMessages=true)=0 |
start processing with the given kernel object More... | |
virtual ProcessStatsHandle | getStats () const =0 |
get processing statistic object (after the runThreaded function was called) | |
![]() | |
virtual void | Delete () |
Static Public Member Functions | |
static IProcessorEx * | New (IDatamanager &manager, SpatialQueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly) |
static IProcessorEx * | New (IDatamanager &manager, const IWindow &processLimit, SpatialQueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly) |
static IProcessorEx * | New (IDatamanager &manager, QueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly) |
static IProcessorEx * | New (IDatamanager &manager, const IWindow &processLimit, QueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly) |
static IProcessorEx * | New (IDatamanager &manager, const ICUStrategy &cuStrategy, QueryDescriptorHandle query, FilterHandle processFilter, FilterHandle neighborFilter, AddInfoLayoutHandle neighborLayout, bool neighborLayoutReadOnly) |
Extended processor/kernel concept.
Compared to the simple processor/kernel the extended version handles all spatial neighborhood queries (also no spatial queries), supports processing and spatial selection filters, as well as, addinfo layout setting for processing and neighborhood points. Furthermore, an optional processing limit (currently only 2d) can be applied. After the runThreaded function was called a detailed statistic object can be accessed
(see getStats and IProcessStats for details). Progress control support is also implemented (see setControlObject) The code uses template functions and specialised code to bypass unneeded functions resulting in optimal performance.
Hence, the extended processor concept reduces the necessary kernel code to an absolute minimum supporting efficient module development
|
pure virtual |
start processing with the given kernel object
[in] | kernel | processing kernel object (will be cloned for each processing thread) |
[in] | threads | number of processing thread (0 -> use logical number of cpus of the current machine) |
[in] | messageOutput | optional message callback object to receive warnings and errors |
[in] | forwardGDALMessages | flag if gdal messages should be forwarded to the messageOutput object |