18#ifndef itkDomainThreader_h
19#define itkDomainThreader_h
65template <
typename TDomainPartitioner,
typename TAssociate>
78 using DomainType =
typename DomainPartitionerType::DomainType;
121 return this->m_MultiThreader->GetMaximumNumberOfThreads();
194#ifndef ITK_MANUAL_INSTANTIATION
195# include "itkDomainThreader.hxx"
Multi-threaded processing on a domain by processing sub-domains per thread.
void StartThreadingSequence()
MultiThreaderBase * GetMultiThreader() const
ThreadIdType GetMaximumNumberOfThreads() const
void Execute(AssociateType *enclosingClass, const DomainType &completeDomain)
TDomainPartitioner DomainPartitionerType
virtual void AfterThreadedExecution()
typename DomainPartitionerType::DomainType DomainType
virtual void ThreadedExecution(const DomainType &subdomain, const ThreadIdType threadId)=0
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ThreaderCallback(void *arg)
virtual void DetermineNumberOfWorkUnitsUsed()
~DomainThreader() override=default
virtual void BeforeThreadedExecution()
void SetMaximumNumberOfThreads(const ThreadIdType threads)
A class for performing multithreaded execution.
Base class for most ITK classes.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
constexpr vcl_size_t ITK_MAX_THREADS
unsigned int ThreadIdType
itk::ITK_THREAD_RETURN_TYPE ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
DomainThreader * domainThreader