IProcessorEx Class Referenceabstract

Extended processor/kernel concept. More...

#include "IProcessorEx.hpp"

+ Inheritance diagram for IProcessorEx:

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())=0
 start processing with the given kernel object More...
 
virtual ProcessStatsHandle getStats () const =0
 get processing statistic object (after the runThreaded function was called)
 
- Public Member Functions inherited from ObjectBase
virtual void Delete ()
 

Static Public Member Functions

static IProcessorExNew (IDatamanager &manager, SpatialQueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly)
 
static IProcessorExNew (IDatamanager &manager, const IWindow &processLimit, SpatialQueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly)
 
static IProcessorExNew (IDatamanager &manager, QueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly)
 
static IProcessorExNew (IDatamanager &manager, const IWindow &processLimit, QueryDescriptorHandle query, FilterHandle processFilter, AddInfoLayoutHandle processLayout, bool processLayoutReadOnly, FilterHandle spatialFilter, AddInfoLayoutHandle spatialLayout, bool spatialLayoutReadOnly)
 
static IProcessorExNew (IDatamanager &manager, const ICUStrategy &cuStrategy, QueryDescriptorHandle query, FilterHandle processFilter, FilterHandle neighborFilter, AddInfoLayoutHandle neighborLayout, bool neighborLayoutReadOnly)
 

Detailed Description

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

Member Function Documentation

◆ runThreaded()

virtual void runThreaded ( IKernelBase kernel,
int  threads = 0,
MessageOutputHandle  messageOutput = MessageOutputHandle() 
)
pure virtual

start processing with the given kernel object

Parameters
[in]kernelprocessing kernel object (will be cloned for each processing thread)
[in]threadsnumber of processing thread (0 -> use logical number of cpus of the current machine)
[in]messageOutputoptional message callback object to receive warnings and errors