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 (IPointKernelEx &kernel, int threads=0, MessageOutputHandle messageOutput=MessageOutputHandle())=0
 start processing with the given kernel object
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)

Detailed Description

Extended processor/kernel concept.

Compared to the simple processor/kernel the exteneded 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

virtual void runThreaded ( IPointKernelEx 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 recieve warnings and errors