ITK
6.0.0
Insight Toolkit
|
#include <itkThreadedIteratorRangePartitioner.h>
Partitions an iterator range for threading.
TIterator | The type of the iterator. |
The DomainType
is defined to be an itk::ThreadedIteratorRangePartitionerDomain, a two component struct of iterators: the first iterator, Begin
, defines the start of the domain, and the second iterator, End
, defines one element past the end of the domain.
The class assumes that iterating through the domain will be a repeatable process.
While this class will work for most containers that use iterators, indexed containers such as std::vector or Array will be partitioned much more efficiently with a ThreadedIndexedContainerPartitioner.
This class is typically used as a template argument to a DomainThreader.
Definition at line 112 of file itkThreadedIteratorRangePartitioner.h.
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | IteratorType = TIterator |
using | Pointer = SmartPointer< Self > |
using | Self = ThreadedIteratorRangePartitioner |
using | Superclass = ThreadedDomainPartitioner< ThreadedIteratorRangePartitionerDomain< TIterator > > |
Public Types inherited from itk::ThreadedDomainPartitioner< ThreadedIteratorRangePartitionerDomain< TIterator > > | |
using | ConstPointer = SmartPointer< const Self > |
using | DomainType = ThreadedIteratorRangePartitionerDomain< TIterator > |
using | Pointer = SmartPointer< Self > |
using | Self = ThreadedDomainPartitioner |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Public Member Functions | |
const char * | GetNameOfClass () const override |
ThreadIdType | PartitionDomain (const ThreadIdType threadId, const ThreadIdType requestedTotal, const DomainType &completeDomain, DomainType &subDomain) const override |
Public Member Functions inherited from itk::ThreadedDomainPartitioner< ThreadedIteratorRangePartitionerDomain< TIterator > > | |
const char * | GetNameOfClass () const override |
virtual ThreadIdType | PartitionDomain (const ThreadIdType threadId, const ThreadIdType requestedTotal, const DomainType &completeDomain, DomainType &subDomain) const=0 |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
LightObject::Pointer | CreateAnother () const override |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
const char * | GetNameOfClass () const override |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) const |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexcept override |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
Pointer | Clone () const |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
virtual const char * | GetNameOfClass () const |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Protected Member Functions | |
ThreadedIteratorRangePartitioner ()=default | |
~ThreadedIteratorRangePartitioner () override=default | |
Protected Member Functions inherited from itk::ThreadedDomainPartitioner< ThreadedIteratorRangePartitionerDomain< TIterator > > | |
ThreadedDomainPartitioner ()=default | |
~ThreadedDomainPartitioner () override=default | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
~Object () override | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Additional Inherited Members | |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
using itk::ThreadedIteratorRangePartitioner< TIterator >::ConstPointer = SmartPointer<const Self> |
Definition at line 122 of file itkThreadedIteratorRangePartitioner.h.
using itk::ThreadedIteratorRangePartitioner< TIterator >::IteratorType = TIterator |
Definition at line 133 of file itkThreadedIteratorRangePartitioner.h.
using itk::ThreadedIteratorRangePartitioner< TIterator >::Pointer = SmartPointer<Self> |
Definition at line 121 of file itkThreadedIteratorRangePartitioner.h.
using itk::ThreadedIteratorRangePartitioner< TIterator >::Self = ThreadedIteratorRangePartitioner |
Standard class type aliases.
Definition at line 119 of file itkThreadedIteratorRangePartitioner.h.
using itk::ThreadedIteratorRangePartitioner< TIterator >::Superclass = ThreadedDomainPartitioner<ThreadedIteratorRangePartitionerDomain<TIterator> > |
Definition at line 120 of file itkThreadedIteratorRangePartitioner.h.
|
protecteddefault |
|
overrideprotecteddefault |
|
overridevirtual |
Reimplemented from itk::Object.
|
static |
Method for creation through the object factory.
|
overridevirtual |
Split the domain completeDomain
into up to requestedTotal
non-overlapping subdomains, setting subdomain number threadId
as subDomain
and returning the total number of subdomains actually available.
This method should be called repeatedly for each value of threadId
, from 0 up to the return value (which is always less than or equal to requestedTotal
).
It is an error for completeDomain
to be zero-length. If threadId
is greater than the return value, the contents of subDomain
are undefined.
Implements itk::ThreadedDomainPartitioner< ThreadedIteratorRangePartitionerDomain< TIterator > >.