Orfeo Toolbox  4.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
itk::MultiThreader Class Reference

A class for performing multithreaded execution. More...

#include <itkMultiThreader.h>

+ Inheritance diagram for itk::MultiThreader:
+ Collaboration diagram for itk::MultiThreader:

Classes

struct  ThreadInfoStruct
 

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef MultiThreader Self
 
typedef Object Superclass
 

Public Member Functions

unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
virtual void Delete ()
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary (void)
 
const MetaDataDictionaryGetMetaDataDictionary (void) const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const char * GetNameOfClass () const
 
virtual ThreadIdType GetNumberOfThreads () const
 
virtual const std::string & GetObjectName ()
 
virtual int GetReferenceCount () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
 itkCloneMacro (Self)
 
virtual void Modified () const
 
void MultipleMethodExecute ()
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMultipleMethod (ThreadIdType index, ThreadFunctionType, void *data)
 
void SetNumberOfThreads (ThreadIdType numberOfThreads)
 
virtual void SetObjectName (std::string _arg)
 
virtual void SetReferenceCount (int)
 
void SetSingleMethod (ThreadFunctionType, void *data)
 
void SingleMethodExecute ()
 
ThreadIdType SpawnThread (ThreadFunctionType, void *data)
 
void TerminateThread (ThreadIdType thread_id)
 
virtual void UnRegister () const
 

Static Public Member Functions

static void BreakOnError ()
 
static ThreadIdType GetGlobalDefaultNumberOfThreads ()
 
static ThreadIdType GetGlobalMaximumNumberOfThreads ()
 
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalDefaultNumberOfThreads (ThreadIdType val)
 
static void SetGlobalMaximumNumberOfThreads (ThreadIdType val)
 
static void SetGlobalWarningDisplay (bool flag)
 

Protected Types

typedef int InternalReferenceCountType
 

Protected Member Functions

 MultiThreader ()
 
 ~MultiThreader ()
 
virtual LightObject::Pointer InternalClone () const
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 

Protected Attributes

InternalReferenceCountType m_ReferenceCount
 
SimpleFastMutexLock m_ReferenceCountLock
 

Private Member Functions

 MultiThreader (const Self &)
 
ThreadProcessIDType DispatchSingleMethodThread (ThreadInfoStruct *)
 
void operator= (const Self &)
 
void WaitForSingleMethodThread (ThreadProcessIDType)
 

Static Private Member Functions

static ThreadIdType GetGlobalDefaultNumberOfThreadsByPlatform ()
 
static ITK_THREAD_RETURN_TYPE SingleMethodProxy (void *arg)
 

Private Attributes

void * m_MultipleData [ITK_MAX_THREADS]
 
ThreadFunctionType m_MultipleMethod [ITK_MAX_THREADS]
 
ThreadIdType m_NumberOfThreads
 
void * m_SingleData
 
ThreadFunctionType m_SingleMethod
 
int m_SpawnedThreadActiveFlag [ITK_MAX_THREADS]
 
MutexLock::Pointer m_SpawnedThreadActiveFlagLock [ITK_MAX_THREADS]
 
ThreadInfoStruct m_SpawnedThreadInfoArray [ITK_MAX_THREADS]
 
ThreadProcessIDType m_SpawnedThreadProcessID [ITK_MAX_THREADS]
 
ThreadInfoStruct m_ThreadInfoArray [ITK_MAX_THREADS]
 

Static Private Attributes

static ThreadIdType m_GlobalDefaultNumberOfThreads = 0
 
static ThreadIdType m_GlobalMaximumNumberOfThreads = ITK_MAX_THREADS
 

Friends

class ProcessObject
 

Detailed Description

A class for performing multithreaded execution.

Multithreader is a class that provides support for multithreaded execution using pthread_create on any platform supporting POSIX threads. This class can be used to execute a single method on multiple threads, or to specify a method per thread.

If ITK_USE_PTHREADS is defined, then pthread_create() will be used to create multiple threads (on a sun, for example).

Definition at line 53 of file itkMultiThreader.h.

Member Typedef Documentation

Definition at line 60 of file itkMultiThreader.h.

typedef int itk::LightObject::InternalReferenceCountType
protectedinherited

Define the type of the reference count according to the target. This allows the use of atomic operations

Definition at line 152 of file itkLightObject.h.

Definition at line 59 of file itkMultiThreader.h.

Standard class typedefs.

Definition at line 57 of file itkMultiThreader.h.

Definition at line 58 of file itkMultiThreader.h.

Constructor & Destructor Documentation

itk::MultiThreader::MultiThreader ( )
protected
itk::MultiThreader::~MultiThreader ( )
protected

Definition at line 206 of file itkMultiThreader.cxx.

itk::MultiThreader::MultiThreader ( const Self )
private

Member Function Documentation

unsigned long itk::Object::AddObserver ( const EventObject event,
Command cmd 
)
inherited

Allow people to add/remove/invoke observers (callbacks) to any ITK object. This is an implementation of the subject/observer design pattern. An observer is added by specifying an event to respond to and an itk::Command to execute. It returns an unsigned long tag which can be used later to remove the event or retrieve the command. The memory for the Command becomes the responsibility of this object, so don't pass the same instance of a command to two different objects

Definition at line 398 of file itkObject.cxx.

References itk::SubjectImplementation::AddObserver().

Referenced by otb::StreamingImageVirtualWriter< TInputImage >::GenerateData(), itk::ProgressAccumulator::RegisterInternalFilter(), otb::ImageFileWriter< TInputImage >::Update(), and otb::WriterWatcherBase::WriterWatcherBase().

unsigned long itk::Object::AddObserver ( const EventObject event,
Command cmd 
) const
inherited

Definition at line 409 of file itkObject.cxx.

References itk::SubjectImplementation::AddObserver().

void itk::LightObject::BreakOnError ( )
staticinherited

This method is called when itkExceptionMacro executes. It allows the debugger to break on error.

Definition at line 150 of file itkLightObject.cxx.

virtual::itk::LightObject::Pointer itk::MultiThreader::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

void itk::Object::DebugOff ( ) const
virtualinherited

Turn debugging output off.

Definition at line 253 of file itkObject.cxx.

void itk::Object::DebugOn ( ) const
virtualinherited

Turn debugging output on.

Definition at line 243 of file itkObject.cxx.

void itk::LightObject::Delete ( )
virtualinherited

Delete an itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C delete method will not work with reference counting.

Delete a itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C++ delete method will not work with reference counting.

Definition at line 91 of file itkLightObject.cxx.

ThreadProcessIDType itk::MultiThreader::DispatchSingleMethodThread ( MultiThreader::ThreadInfoStruct threadInfo)
private

Spawn a thread for the prescribed SingleMethod. This routine spawns a thread to the SingleMethodProxy which runs the prescribed SingleMethod. The SingleMethodProxy allows for exceptions within a thread to be naively handled. A similar abstraction needs to be added for MultipleMethod and SpawnThread.

Definition at line 139 of file itkMultiThreaderNoThreads.cxx.

Referenced by SingleMethodExecute().

Command * itk::Object::GetCommand ( unsigned long  tag)
inherited

Get the command associated with the given tag. NOTE: This returns a pointer to a Command, but it is safe to assign this to a Command::Pointer. Since Command inherits from LightObject, at this point in the code, only a pointer or a reference to the Command can be used.

Definition at line 421 of file itkObject.cxx.

References itk::Object::GetCommand(), and NULL.

Referenced by itk::Object::GetCommand().

bool itk::Object::GetDebug ( ) const
inherited

Get the value of the debug flag.

Definition at line 263 of file itkObject.cxx.

Referenced by otb::ogr::ImageReference< double >::GetDebug().

ThreadIdType itk::MultiThreader::GetGlobalDefaultNumberOfThreads ( )
static
ThreadIdType itk::MultiThreader::GetGlobalDefaultNumberOfThreadsByPlatform ( )
staticprivate

Platform specific number of threads

Definition at line 35 of file itkMultiThreaderNoThreads.cxx.

Referenced by GetGlobalDefaultNumberOfThreads().

ThreadIdType itk::MultiThreader::GetGlobalMaximumNumberOfThreads ( )
static
bool itk::Object::GetGlobalWarningDisplay ( )
staticinherited

Get the value of the global debug output control flag.

Definition at line 391 of file itkObject.cxx.

MetaDataDictionary & itk::Object::GetMetaDataDictionary ( void  )
inherited
const MetaDataDictionary & itk::Object::GetMetaDataDictionary ( void  ) const
inherited
Returns
A constant reference to this objects MetaDataDictionary.

Definition at line 548 of file itkObject.cxx.

References NULL.

ModifiedTimeType itk::Object::GetMTime ( void  ) const
virtualinherited

Return this objects modified time.

Return the modification for this object.

Reimplemented in itk::ImageAdaptor< TImage, TAccessor >, itk::ImageAdaptor< TImage, Accessor::AsinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::SqrtPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, otb::Accessor::VectorImageToASPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, Accessor::TanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::CosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::VectorToRGBPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, Accessor::RGBToVectorPixelAccessor< TImage::PixelType::ComponentType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToModulusPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AbsPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ShiftScalePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::SinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::LogPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToPhasePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< VectorImage< TPixelType, Dimension >, Accessor::VectorImageToImagePixelAccessor< TPixelType > >, itk::ImageAdaptor< TImage, Accessor::Log10PixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AtanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToRealPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToImaginaryPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ExpNegativePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexConjugatePixelAccessor< TImage::PixelType > >, itk::ImageAdaptor< TImage, Accessor::ExpPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AcosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::RGBToLuminancePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AddPixelAccessor< TImage::PixelType > >, itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType, TTransformPrecisionType >, itk::MultiResolutionImageRegistrationMethod< TFixedImage, TMovingImage >, itk::SpatialObject< VDimension >, itk::SpatialObject< 3 >, itk::SpatialObject< TDimension >, itk::SpatialObject< TMesh::PointDimension >, itk::VectorResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >, itk::ImageRegistrationMethod< TFixedImage, TMovingImage >, itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >, itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >, itk::TransformToDeformationFieldSource< TOutputImage, TTransformPrecisionType >, itk::BoundingBox< TPointIdentifier, VPointDimension, TCoordRep, TPointsContainer >, itk::InverseDisplacementFieldImageFilter< TInputImage, TOutputImage >, itk::PointSetToImageRegistrationMethod< TFixedPointSet, TMovingImage >, itk::TransformToDisplacementFieldSource< TOutputImage, TTransformPrecisionType >, itk::PointSetToPointSetRegistrationMethod< TFixedPointSet, TMovingPointSet >, itk::DeformationFieldSource< TOutputImage >, itk::LandmarkDisplacementFieldSource< TOutputImage >, itk::ImageSpatialObject< TDimension, TPixelType >, itk::ImageSpatialObject< TDimension, unsigned char >, itk::MeshSpatialObject< TMesh >, and itk::SceneSpatialObject< TSpaceDimension >.

Definition at line 283 of file itkObject.cxx.

Referenced by itk::LandmarkDisplacementFieldSource< TOutputImage >::GetMTime(), itk::DeformationFieldSource< TOutputImage >::GetMTime(), itk::TransformToDisplacementFieldSource< TOutputImage, TTransformPrecisionType >::GetMTime(), itk::InverseDisplacementFieldImageFilter< TInputImage, TOutputImage >::GetMTime(), itk::BoundingBox< TPointIdentifier, VPointDimension, TCoordRep, TPointsContainer >::GetMTime(), itk::TransformToDeformationFieldSource< TOutputImage, TTransformPrecisionType >::GetMTime(), itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetMTime(), itk::VectorResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >::GetMTime(), itk::SpatialObject< VDimension >::GetMTime(), itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType, TTransformPrecisionType >::GetMTime(), itk::SpatialObject< TMesh::PointDimension >::GetObjectMTime(), and itk::ProcessObject::UpdateOutputInformation().

virtual const char* itk::MultiThreader::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::Object.

virtual ThreadIdType itk::MultiThreader::GetNumberOfThreads ( ) const
virtual
virtual const std::string& itk::Object::GetObjectName ( )
virtualinherited
virtual int itk::LightObject::GetReferenceCount ( ) const
inlinevirtualinherited

Gets the reference count on this object.

Definition at line 112 of file itkLightObject.h.

const TimeStamp & itk::Object::GetTimeStamp ( ) const
virtualinherited

Return this object's time stamp.

Return the modification for this object.

Reimplemented in itk::RealTimeClock.

Definition at line 293 of file itkObject.cxx.

Referenced by itk::RealTimeClock::GetTimeStamp().

static void itk::Object::GlobalWarningDisplayOff ( )
inlinestaticinherited

Definition at line 118 of file itkObject.h.

Referenced by itk::OutputWindow::DisplayText().

static void itk::Object::GlobalWarningDisplayOn ( )
inlinestaticinherited

Definition at line 116 of file itkObject.h.

bool itk::Object::HasObserver ( const EventObject event) const
inherited

Return true if an observer is registered for this event.

Definition at line 472 of file itkObject.cxx.

LightObject::Pointer itk::LightObject::InternalClone ( ) const
protectedvirtualinherited
void itk::Object::InvokeEvent ( const EventObject event)
inherited
void itk::Object::InvokeEvent ( const EventObject event) const
inherited

Call Execute on all the Commands observing this event id. The actions triggered by this call doesn't modify this object.

Definition at line 462 of file itkObject.cxx.

itk::LightObject::itkCloneMacro ( Self  )
inherited
void itk::Object::Modified ( void  ) const
virtualinherited

Update the modification time for this object. Many filters rely on the modification time to determine if they need to recompute their data.

Make sure this object's modified time is greater than all others.

Reimplemented in otb::SVMModel< TValue, TLabel >, itk::ImageAdaptor< TImage, TAccessor >, itk::ImageAdaptor< TImage, Accessor::AsinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::SqrtPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, otb::Accessor::VectorImageToASPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, Accessor::TanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::CosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::VectorToRGBPixelAccessor< TImage::PixelType::ValueType > >, itk::ImageAdaptor< TImage, Accessor::RGBToVectorPixelAccessor< TImage::PixelType::ComponentType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToModulusPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AbsPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ShiftScalePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::SinPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::LogPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToPhasePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< VectorImage< TPixelType, Dimension >, Accessor::VectorImageToImagePixelAccessor< TPixelType > >, itk::ImageAdaptor< TImage, Accessor::Log10PixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AtanPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToRealPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexToImaginaryPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ExpNegativePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::ComplexConjugatePixelAccessor< TImage::PixelType > >, itk::ImageAdaptor< TImage, Accessor::ExpPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AcosPixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::RGBToLuminancePixelAccessor< TImage::PixelType, TOutputPixelType > >, itk::ImageAdaptor< TImage, Accessor::AddPixelAccessor< TImage::PixelType > >, otb::SurfaceAdjacencyEffect6SCorrectionSchemeFilter< TInputImage, TOutputImage >, otb::GenericRSTransform< TScalarType, NInputDimensions, NOutputDimensions >, itk::GPUImage< TPixel, VImageDimension >, otb::MeanShiftImageFilter< TInputImage, TOutputImage, TLabeledOutput, TBufferConverter >, otb::MeanShiftImageFilter< TInputImage, TOutputImage, TLabeledOutput, MeanShift::VectorBufferConverter >, otb::GCPsToRPCSensorModelImageFilter< TImage >, otb::Polygon< TValue >, otb::ImageRegionAdaptativeSplitter< VImageDimension >, itk::GrayscaleErodeImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleMorphologicalClosingImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleDilateImageFilter< TInputImage, TOutputImage, TKernel >, otb::GenericInterpolateImageFunction< TInputImage, TFunction, TBoundaryCondition, TCoordRep >, itk::MorphologicalGradientImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleMorphologicalOpeningImageFilter< TInputImage, TOutputImage, TKernel >, otb::PolyLineParametricPathWithValue< TValue, VDimension >, otb::PolyLineParametricPathWithValue< TValue, 2 >, otb::PhysicalToRPCSensorModelImageFilter< TImage >, itk::NormalizeImageFilter< TInputImage, TOutputImage >, and otb::StatisticsXMLFileReader< TMeasurementVector >.

Definition at line 312 of file itkObject.cxx.

Referenced by itk::AttributeSelectionLabelMapFilter< TImage, Functor::LabelLabelObjectAccessor< TImage::LabelObjectType > >::AddAttribute(), itk::Function::ConvergenceMonitoringFunction< TScalar, TScalar >::AddEnergyValue(), otb::Wrapper::InputVectorDataListParameter::AddFromFileName(), otb::Wrapper::InputImageListParameter::AddFromFileName(), otb::Wrapper::InputFilenameListParameter::AddFromFileName(), otb::Wrapper::InputImageListParameter::AddImage(), otb::Wrapper::InputVectorDataListParameter::AddNullElement(), otb::Wrapper::InputImageListParameter::AddNullElement(), otb::Wrapper::InputFilenameListParameter::AddNullElement(), otb::Wrapper::StringListParameter::AddNullElement(), itk::ConnectedRegionsMeshFilter< TInputMesh, TOutputMesh >::AddSeed(), itk::ConnectedRegionsMeshFilter< TInputMesh, TOutputMesh >::AddSpecifiedRegion(), otb::Wrapper::InputVectorDataListParameter::AddVectorData(), itk::PolyLineParametricPath< VDimension >::AddVertex(), itk::ChainCodePath< 2 >::ChangeStep(), itk::ChainCodePath2D::ChangeStep(), itk::FourierSeriesPath< VDimension >::Clear(), itk::HilbertPath< TIndexValue, VDimension >::Clear(), itk::ChainCodePath< 2 >::Clear(), itk::ChainCodePath2D::Clear(), itk::AttributeSelectionLabelMapFilter< TImage, Functor::LabelLabelObjectAccessor< TImage::LabelObjectType > >::ClearAttributeSet(), itk::Function::ConvergenceMonitoringFunction< TScalar, TScalar >::ClearEnergyValues(), itk::MultiTransform< TScalar, NDimensions >::ClearTransformQueue(), otb::Wrapper::InputFilenameListParameter::ClearValue(), otb::Wrapper::InputImageListParameter::ClearValue(), otb::Wrapper::InputVectorDataListParameter::ClearValue(), otb::Wrapper::InputFilenameListParameter::Erase(), otb::Wrapper::InputImageListParameter::Erase(), otb::Wrapper::InputVectorDataListParameter::Erase(), itk::ConnectedRegionsMeshFilter< TInputMesh, TOutputMesh >::InitializeSeedList(), itk::ConnectedRegionsMeshFilter< TInputMesh, TOutputMesh >::InitializeSpecifiedRegionList(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::InsertNarrowBandNode(), itk::ChainCodePath2D::InsertStep(), itk::ChainCodePath< 2 >::InsertStep(), otb::ogr::ImageReference< double >::Modified(), itk::MultiTransform< TScalar, NDimensions >::PopBackTransform(), itk::MultiTransform< TScalar, NDimensions >::PopFrontTransform(), itk::MultiTransform< TScalar, NDimensions >::PushBackTransform(), itk::MultiTransform< TScalar, NDimensions >::PushFrontTransform(), itk::Statistics::SubsamplerBase< TSample >::RequestMaximumNumberOfResults(), itk::AdaptImageFilter< TInputImage, TOutputImage, TAccessor >::SetAccessor(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetAdvectionScaling(), itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetAlivePoints(), itk::CompositeTransform< TScalar, NDimensions >::SetAllTransformsToOptimize(), itk::GaussianInterpolateImageFunction< TInputImage, TCoordRep >::SetAlpha(), itk::WeightedAddImageFilter< TInputImage1, TInputImage2, TOutputImage >::SetAlpha(), itk::SigmoidImageFilter< TInputImage, TOutputImage >::SetAlpha(), itk::AttributeSelectionLabelMapFilter< TImage, Functor::LabelLabelObjectAccessor< TImage::LabelObjectType > >::SetAttributeSet(), itk::LevelSetVelocityNeighborhoodExtractor< TLevelSet, TAuxValue, VAuxDimension >::SetAuxImage(), itk::SigmoidImageFilter< TInputImage, TOutputImage >::SetBeta(), itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetBinaryMask(), otb::TileMapImageIO::SetCacheDirectory(), itk::MatrixOffsetTransformBase< TScalar, 3, 3 >::SetCenter(), itk::ConnectedRegionsMeshFilter< TInputMesh, TOutputMesh >::SetClosestPoint(), itk::ConstantPadImageFilter< TInputImage, TOutputImage >::SetConstant(), itk::DivideOrZeroOutImageFilter< TInputImage1, TInputImage2, TOutputImage >::SetConstant(), itk::LBFGSBOptimizer::SetCostFunction(), itk::VectorThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetCovariance(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetCurvatureScaling(), itk::CurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetDerivativeSigma(), itk::NarrowBandCurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetDerivativeSigma(), itk::GeodesicActiveContourLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetDerivativeSigma(), itk::GeodesicActiveContourShapePriorLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetDerivativeSigma(), otb::ImageIOBase::SetDimensions(), itk::ImageIOBase::SetDimensions(), otb::ImageIOBase::SetDirection(), itk::ImageIOBase::SetDirection(), itk::ExtractImageFilter< TInputImage, TOutputImage >::SetDirectionCollapseToStrategy(), itk::ComposeDisplacementFieldsImageFilter< TInputImage, TOutputImage >::SetDisplacementField(), itk::InvertDisplacementFieldImageFilter< TInputImage, TOutputImage >::SetDisplacementField(), itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetEdgeWeight(), itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetEdgeWeight(), itk::watershed::Boundary< TScalar, TDimension >::SetFace(), itk::ExpNegativeImageFilter< TInputImage, TOutputImage >::SetFactor(), itk::FileListVideoIO::SetFileName(), itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::SetFixedAverageGradientMagnitude(), itk::watershed::Boundary< TScalar, TDimension >::SetFlatHash(), itk::NaryFunctorImageFilter< TInputImage, TOutputImage, Functor::Maximum1< TInputImage::PixelType, TInputImage::PixelType > >::SetFunctor(), itk::UnaryFunctorImageFilter< TInputImage, TOutputImage, Functor::ReciprocalHAlphaFunctor< TInputImage::PixelType, TOutputImage::PixelType > >::SetFunctor(), itk::HistogramToImageFilter< THistogram, TImage, Function::HistogramIntensityFunction< SizeValueType, TImage::PixelType > >::SetFunctor(), itk::TernaryFunctorImageFilter< TInputMultiSpectralImage, TInputMultiSpectralInterpImage, TInputPanchroImage, TOutputImage, TFunctor >::SetFunctor(), itk::ConnectedComponentFunctorImageFilter< TInputImage, TOutputImage, Functor::SimilarVectorsFunctor< TInputImage::ValueType >, TMaskImage >::SetFunctor(), itk::BinaryFunctorImageFilter< TInputImage1, TInputImage2, TOutputImage, Functor::DivideOrZeroOut< TInputImage1::PixelType, TInputImage2::PixelType, TOutputImage::PixelType > >::SetFunctor(), itk::ImageMomentsCalculator< TImage >::SetImage(), otb::Wrapper::InputImageListParameter::SetImageList(), itk::VectorIndexSelectionCastImageFilter< TInputImage, TOutputImage >::SetIndex(), itk::MatrixIndexSelectionImageFilter< TInputImage, TOutputImage >::SetIndices(), itk::TriangleMeshToBinaryImageFilter< TInputMesh, TOutputImage >::SetInfoImage(), itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetInitialBiasFieldCoefficients(), itk::AmoebaOptimizer::SetInitialSimplexDelta(), itk::HistogramAlgorithmBase< THistogram >::SetInputHistogram(), otb::HistogramStatisticsFunction< TInputHistogram, TOutput >::SetInputHistogram(), otb::ImageToGenericRSOutputParameters< TImage >::SetInputKeywordList(), itk::LabelVotingImageFilter< TInputImage, TOutputImage >::SetLabelForUndecidedPixels(), itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::SetLabelForUndecidedPixels(), itk::watershed::Segmenter< InputImageType >::SetLargestPossibleRegion(), itk::TemporalDataObject::SetLargestPossibleTemporalRegion(), otb::Wrapper::InputImageListParameter::SetListFromFileName(), otb::Wrapper::InputVectorDataListParameter::SetListFromFileName(), otb::Wrapper::InputFilenameListParameter::SetListFromFileName(), itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetLowerThreshold(), itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetLowerThreshold(), itk::MaskNegatedImageFilter< TInputImage, TMaskImage, TOutputImage >::SetMaskingValue(), itk::MaskImageFilter< TInputImage, TMaskImage, TOutputImage >::SetMaskingValue(), itk::MatrixOffsetTransformBase< TScalar, 3, 3 >::SetMatrix(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetMaximumCurvatureTimeStep(), itk::watershed::SegmentTable< TScalar >::SetMaximumDepth(), itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetMaximumError(), itk::CannyEdgeDetectionImageFilter< ImageType, ImageType >::SetMaximumError(), itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::SetMaximumNumberOfIterations(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetMaximumPropagationTimeStep(), itk::VectorThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetMean(), itk::Statistics::MembershipFunctionBase< TMeasurementVector >::SetMeasurementVectorSize(), itk::Statistics::DistanceMetric< Array< double > >::SetMeasurementVectorSize(), itk::Statistics::Sample< ImageJointDomainTraits< TImage >::MeasurementVectorType >::SetMeasurementVectorSize(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::SetNarrowBand(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::SetNarrowBandInnerRadius(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > >::SetNarrowBandTotalRadius(), itk::OpenCVVideoIO::SetNextFrameToRead(), itk::VXLVideoIO::SetNextFrameToRead(), otb::Wrapper::InputImageListParameter::SetNthFileName(), otb::Wrapper::InputVectorDataListParameter::SetNthFileName(), otb::Wrapper::InputFilenameListParameter::SetNthFileName(), itk::CompositeTransform< TScalar, NDimensions >::SetNthTransformToOptimize(), otb::ImageIOBase::SetNumberOfDimensions(), itk::ImageIOBase::SetNumberOfDimensions(), itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetNumberOfLayers(), itk::Statistics::UniformRandomSpatialNeighborSubsampler< TSample, TRegion >::SetNumberOfResultsRequested(), itk::FastMarchingReachedTargetNodesStoppingCriterion< TInput, TOutput >::SetNumberOfTargetsToBeReached(), itk::MatrixOffsetTransformBase< TScalar, 3, 3 >::SetOffset(), itk::NeighborhoodOperatorImageFunction< TInputImage, TOutput >::SetOperator(), itk::VectorNeighborhoodOperatorImageFilter< TInputImage, TOutputImage >::SetOperator(), itk::NeighborhoodOperatorImageFilter< TInputImage, TOutputImage, TOperatorValueType >::SetOperator(), otb::ImageIOBase::SetOrigin(), itk::ImageIOBase::SetOrigin(), itk::SigmoidImageFilter< TInputImage, TOutputImage >::SetOutputMaximum(), itk::SigmoidImageFilter< TInputImage, TOutputImage >::SetOutputMinimum(), otb::ImageToGenericRSOutputParameters< TImage >::SetOutputProjectionRef(), itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutsidePoints(), itk::MaskNegatedImageFilter< TInputImage, TMaskImage, TOutputImage >::SetOutsideValue(), itk::MaskImageFilter< TInputImage, TMaskImage, TOutputImage >::SetOutsideValue(), otb::MapProjectionAdapter::SetParameter(), itk::Statistics::ProbabilityDistribution::SetParameters(), itk::DisplacementFieldTransform< TScalar, NDimensions >::SetParameters(), itk::FFTWInverseFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWHalfHermitianToRealInverseFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWRealToHalfHermitianForwardFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::FFTWForwardFFTImageFilter< TInputImage, TOutputImage >::SetPlanRigor(), itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::SetPriorProbabilities(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetPropagationScaling(), itk::ThresholdLabelerImageFilter< TInputImage, TOutputImage >::SetRealThresholds(), itk::ChangeInformationImageFilter< TInputImage >::SetReferenceImage(), itk::ImportImageFilter< TPixel, VImageDimension >::SetRegion(), itk::BinaryMask3DMeshSource< TInputImage, TOutputMesh >::SetRegionOfInterest(), itk::ScaleTransform< TScalar, NDimensions >::SetScale(), itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetSeedPoints1(), itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetSeedPoints2(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSegmentationFunction(), itk::ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetShapePriorScaling(), itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TOutputTransform >::SetShrinkFactorsPerDimension(), itk::GaussianInterpolateImageFunction< TInputImage, TCoordRep >::SetSigma(), itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSmoothingConductance(), itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSmoothingConductance(), itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSmoothingIterations(), itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSmoothingIterations(), itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSmoothingTimeStep(), itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetSmoothingTimeStep(), itk::PowellOptimizer::SetSpaceDimension(), otb::ImageIOBase::SetSpacing(), itk::ImageIOBase::SetSpacing(), itk::SpatialObject< TMesh::PointDimension >::SetSpacing(), itk::ImageMomentsCalculator< TImage >::SetSpatialObjectMask(), itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetSpeedConstant(), itk::FastMarchingReachedTargetNodesStoppingCriterion< TInput, TOutput >::SetTargetCondition(), itk::FastMarchingReachedTargetNodesStoppingCriterion< TInput, TOutput >::SetTargetNodes(), itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >::SetTargetPoints(), itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::SetTerminationUpdateThreshold(), itk::DivideOrZeroOutImageFilter< TInputImage1, TInputImage2, TOutputImage >::SetThreshold(), itk::VectorThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetThreshold(), itk::ThresholdLabelerImageFilter< TInputImage, TOutputImage >::SetThresholds(), itk::MatrixOffsetTransformBase< TScalar, 3, 3 >::SetTranslation(), itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetTrialPoints(), itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetUpperThreshold(), itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetUpperThreshold(), itk::Statistics::UniformRandomSpatialNeighborSubsampler< TSample, TRegion >::SetUseClockForSeed(), itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetUseMinimalCurvature(), itk::watershed::Boundary< TScalar, TDimension >::SetValid(), otb::Wrapper::OutputProcessXMLParameter::SetValue(), otb::Wrapper::InputProcessXMLParameter::SetValue(), otb::Wrapper::OutputFilenameParameter::SetValue(), otb::Wrapper::InputFilenameParameter::SetValue(), otb::Wrapper::ListViewParameter::SetValue(), otb::Wrapper::ChoiceParameter::SetValue(), itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetVariance(), itk::CannyEdgeDetectionImageFilter< ImageType, ImageType >::SetVariance(), otb::Wrapper::InputVectorDataListParameter::SetVectorDataList(), otb::MapProjectionAdapter::SetWkt(), itk::LabelVotingImageFilter< TInputImage, TOutputImage >::UnsetLabelForUndecidedPixels(), itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::UnsetLabelForUndecidedPixels(), itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::UnsetMaximumNumberOfIterations(), and itk::MultiLabelSTAPLEImageFilter< TInputImage, TOutputImage, TWeights >::UnsetPriorProbabilities().

void itk::MultiThreader::MultipleMethodExecute ( )

Execute the MultipleMethods (as define by calling SetMultipleMethod for each of the required m_NumberOfThreads methods) using m_NumberOfThreads threads. As a side effect the m_NumberOfThreads will be checked against the current m_GlobalMaximumNumberOfThreads and clamped if necessary.

Definition at line 44 of file itkMultiThreaderNoThreads.cxx.

References m_GlobalMaximumNumberOfThreads, m_MultipleData, m_MultipleMethod, m_NumberOfThreads, m_ThreadInfoArray, itk::MultiThreader::ThreadInfoStruct::NumberOfThreads, and itk::MultiThreader::ThreadInfoStruct::UserData.

static Pointer itk::MultiThreader::New ( )
static
void itk::MultiThreader::operator= ( const Self )
private
void itk::LightObject::Print ( std::ostream &  os,
Indent  indent = 0 
) const
inherited

Cause the object to print itself out.

Avoid DLL boundary problems. This function will be common to all itk objects. It just calls the header/self/trailer virtual print methods, which can be overriden by subclasses (any itk object).

Definition at line 137 of file itkLightObject.cxx.

References itk::Indent::GetNextIndent().

Referenced by itk::operator<<(), and itk::VideoStream< TFrameType >::PrintSelf().

void itk::LightObject::PrintHeader ( std::ostream &  os,
Indent  indent 
) const
protectedvirtualinherited

Define a default print header for all objects.

Definition at line 315 of file itkLightObject.cxx.

bool itk::Object::PrintObservers ( std::ostream &  os,
Indent  indent 
) const
protectedinherited

Definition at line 483 of file itkObject.cxx.

void itk::MultiThreader::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Chaining method to print an object's instance variables, as well as its superclasses.

Reimplemented from itk::Object.

Definition at line 401 of file itkMultiThreader.cxx.

References m_GlobalDefaultNumberOfThreads, m_GlobalMaximumNumberOfThreads, m_NumberOfThreads, and itk::Object::PrintSelf().

void itk::LightObject::PrintTrailer ( std::ostream &  os,
Indent  indent 
) const
protectedvirtualinherited

Define a default print trailer for all objects.

Definition at line 325 of file itkLightObject.cxx.

void itk::Object::Register ( ) const
virtualinherited

Increase the reference count (mark as used by another object).

Reimplemented from itk::LightObject.

Definition at line 323 of file itkObject.cxx.

Referenced by itk::ObjectFactoryBase::RegisterFactory(), and itk::ObjectFactoryBase::RegisterFactoryInternal().

void itk::Object::RemoveAllObservers ( )
inherited

Remove all observers .

Definition at line 442 of file itkObject.cxx.

void itk::Object::RemoveObserver ( unsigned long  tag)
inherited

Remove the observer with this tag value.

Definition at line 432 of file itkObject.cxx.

Referenced by otb::StreamingImageVirtualWriter< TInputImage >::GenerateData(), and otb::ImageFileWriter< TInputImage >::Update().

void itk::Object::SetDebug ( bool  debugFlag) const
inherited

Set the value of the debug flag. A non-zero value turns debugging on.

Definition at line 273 of file itkObject.cxx.

void itk::MultiThreader::SetGlobalDefaultNumberOfThreads ( ThreadIdType  val)
static

Set/Get the value which is used to initialize the NumberOfThreads in the constructor. It will be clamped to the range [1, m_GlobalMaximumNumberOfThreads ]. Therefore the caller of this method should check that the requested number of threads was accepted.

Definition at line 71 of file itkMultiThreader.cxx.

References m_GlobalDefaultNumberOfThreads, and m_GlobalMaximumNumberOfThreads.

Referenced by main(), and pmain().

void itk::MultiThreader::SetGlobalMaximumNumberOfThreads ( ThreadIdType  val)
static

Set/Get the maximum number of threads to use when multithreading. It will be clamped to the range [ 1, ITK_MAX_THREADS ] because several arrays are already statically allocated using the ITK_MAX_THREADS number. Therefore the caller of this method should check that the requested number of threads was accepted.

Definition at line 51 of file itkMultiThreader.cxx.

References ITK_MAX_THREADS, m_GlobalDefaultNumberOfThreads, and m_GlobalMaximumNumberOfThreads.

void itk::Object::SetGlobalWarningDisplay ( bool  val)
staticinherited

This is a global flag that controls whether any debug, warning or error messages are displayed.

Set the value of the global debug output control flag.

Definition at line 381 of file itkObject.cxx.

void itk::Object::SetMetaDataDictionary ( const MetaDataDictionary rhs)
inherited
void itk::MultiThreader::SetMultipleMethod ( ThreadIdType  index,
ThreadFunctionType  f,
void *  data 
)

Set the MultipleMethod at the given index to f() and the UserData field of the ThreadInfoStruct that is passed to it will be data.

Definition at line 221 of file itkMultiThreader.cxx.

References m_MultipleData, m_MultipleMethod, and m_NumberOfThreads.

void itk::MultiThreader::SetNumberOfThreads ( ThreadIdType  numberOfThreads)

Get/Set the number of threads to create. It will be clamped to the range [ 1, m_GlobalMaximumNumberOfThreads ], so the caller of this method should check that the requested number of threads was accepted.

Definition at line 83 of file itkMultiThreader.cxx.

References m_GlobalMaximumNumberOfThreads, and m_NumberOfThreads.

Referenced by itk::ProcessObject::ProcessObjectDomainThreader< TDomainPartitioner, TAssociate >::DetermineNumberOfThreadsUsed(), itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GenerateData(), and otb::JPEG2000ImageIO::Read().

virtual void itk::Object::SetObjectName ( std::string  _arg)
virtualinherited

A facility to help application programmers set a human identifiable name for a given object. This has no inherent use in ITK, but is a convenience to allow developers to provide a name for this object.

void itk::Object::SetReferenceCount ( int  ref)
virtualinherited

Sets the reference count (use with care)

If there is a delete method, invoke it.

Reimplemented from itk::LightObject.

Definition at line 359 of file itkObject.cxx.

void itk::MultiThreader::SetSingleMethod ( ThreadFunctionType  f,
void *  data 
)

Set the SingleMethod to f() and the UserData field of the ThreadInfoStruct that is passed to it will be data. This method (and all the methods passed to SetMultipleMethod) must be of type itkThreadFunctionType and must take a single argument of type void *.

Definition at line 211 of file itkMultiThreader.cxx.

References m_SingleData, and m_SingleMethod.

Referenced by itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GenerateData(), otb::JPEG2000ImageIO::Read(), and itk::DomainThreader< TDomainPartitioner, TAssociate >::StartThreadingSequence().

void itk::Object::SetTimeStamp ( const TimeStamp timeStamp)
protectedvirtualinherited

Set the time stamp of this object. This method must be used very carefully !!!. Most mortals will never need to call this method.

Set the time stamp of this object. To be used very carefully !!!. Most mortals will never need to call this method.

Definition at line 302 of file itkObject.cxx.

void itk::MultiThreader::SingleMethodExecute ( )
ITK_THREAD_RETURN_TYPE itk::MultiThreader::SingleMethodProxy ( void *  arg)
staticprivate

Static function used as a "proxy callback" by the MultiThreader. The threading library will call this routine for each thread, which will delegate the control to the prescribed SingleMethod. This routine acts as an intermediary between the MultiThreader and the user supplied callback (SingleMethod) in order to catch any exceptions thrown by the threads.

Definition at line 365 of file itkMultiThreader.cxx.

References itk::MultiThreader::ThreadInfoStruct::ITK_EXCEPTION, itk::MultiThreader::ThreadInfoStruct::ITK_PROCESS_ABORTED_EXCEPTION, ITK_THREAD_RETURN_VALUE, itk::MultiThreader::ThreadInfoStruct::STD_EXCEPTION, itk::MultiThreader::ThreadInfoStruct::SUCCESS, itk::MultiThreader::ThreadInfoStruct::ThreadExitCode, itk::MultiThreader::ThreadInfoStruct::ThreadFunction, and itk::MultiThreader::ThreadInfoStruct::UNKNOWN.

ThreadIdType itk::MultiThreader::SpawnThread ( ThreadFunctionType  f,
void *  data 
)

Create a new thread for the given function. Return a thread id which is a number between 0 and ITK_MAX_THREADS - 1. This id should be used to kill the thread at a later time.

Definition at line 69 of file itkMultiThreaderNoThreads.cxx.

References itk::MultiThreader::ThreadInfoStruct::ActiveFlag, itk::MultiThreader::ThreadInfoStruct::ActiveFlagLock, ITK_MAX_THREADS, m_SpawnedThreadActiveFlag, m_SpawnedThreadActiveFlagLock, m_SpawnedThreadInfoArray, itk::MutexLock::New(), itk::MultiThreader::ThreadInfoStruct::NumberOfThreads, and itk::MultiThreader::ThreadInfoStruct::UserData.

void itk::MultiThreader::TerminateThread ( ThreadIdType  thread_id)

Terminate the thread that was created with a SpawnThreadExecute()

Definition at line 110 of file itkMultiThreaderNoThreads.cxx.

References m_SpawnedThreadActiveFlag, and m_SpawnedThreadActiveFlagLock.

void itk::Object::UnRegister ( ) const
virtualinherited

Decrease the reference count (release by another object).

If there is a delete method, invoke it.

Reimplemented from itk::LightObject.

Definition at line 337 of file itkObject.cxx.

Referenced by itk::ObjectFactoryBase::DeleteNonInternalFactory(), and itk::Object::New().

void itk::MultiThreader::WaitForSingleMethodThread ( ThreadProcessIDType  threadHandle)
private

Wait for a thread running the prescribed SingleMethod. A similar abstraction needs to be added for MultipleMethod (SpawnThread already has a routine to do this.

Definition at line 131 of file itkMultiThreaderNoThreads.cxx.

Referenced by SingleMethodExecute().

Friends And Related Function Documentation

friend class ProcessObject
friend

Friends of Multithreader. ProcessObject is a friend so that it can call PrintSelf() on its Multithreader.

Definition at line 227 of file itkMultiThreader.h.

Member Data Documentation

ThreadIdType itk::MultiThreader::m_GlobalDefaultNumberOfThreads = 0
staticprivate
ThreadIdType itk::MultiThreader::m_GlobalMaximumNumberOfThreads = ITK_MAX_THREADS
staticprivate

Global variable defining the maximum number of threads that can be used. The m_GlobalMaximumNumberOfThreads must always be less than or equal to ITK_MAX_THREADS and greater than zero.

Definition at line 179 of file itkMultiThreader.h.

Referenced by GetGlobalDefaultNumberOfThreads(), GetGlobalMaximumNumberOfThreads(), MultipleMethodExecute(), PrintSelf(), SetGlobalDefaultNumberOfThreads(), SetGlobalMaximumNumberOfThreads(), SetNumberOfThreads(), and SingleMethodExecute().

void* itk::MultiThreader::m_MultipleData[ITK_MAX_THREADS]
private

Definition at line 174 of file itkMultiThreader.h.

Referenced by MultipleMethodExecute(), MultiThreader(), and SetMultipleMethod().

ThreadFunctionType itk::MultiThreader::m_MultipleMethod[ITK_MAX_THREADS]
private

Definition at line 163 of file itkMultiThreader.h.

Referenced by MultipleMethodExecute(), MultiThreader(), and SetMultipleMethod().

ThreadIdType itk::MultiThreader::m_NumberOfThreads
private

The number of threads to use. The m_NumberOfThreads must always be less than or equal to the m_GlobalMaximumNumberOfThreads before it is used during the execution of a threaded method. Its value is clamped in the SingleMethodExecute() and MultipleMethodExecute(). Its value is initialized to m_GlobalDefaultNumberOfThreads at construction time. Its value is clamped to the current m_GlobalMaximumNumberOfThreads in the SingleMethodExecute() and MultipleMethodExecute() methods.

Definition at line 201 of file itkMultiThreader.h.

Referenced by MultipleMethodExecute(), MultiThreader(), PrintSelf(), SetMultipleMethod(), SetNumberOfThreads(), and SingleMethodExecute().

InternalReferenceCountType itk::LightObject::m_ReferenceCount
mutableprotectedinherited

Number of uses of this object by other objects.

Definition at line 156 of file itkLightObject.h.

SimpleFastMutexLock itk::LightObject::m_ReferenceCountLock
mutableprotectedinherited

Mutex lock to protect modification to the reference count

Definition at line 159 of file itkLightObject.h.

void* itk::MultiThreader::m_SingleData
private

Internal storage of the data.

Definition at line 173 of file itkMultiThreader.h.

Referenced by MultiThreader(), SetSingleMethod(), and SingleMethodExecute().

ThreadFunctionType itk::MultiThreader::m_SingleMethod
private

The methods to invoke.

Definition at line 162 of file itkMultiThreader.h.

Referenced by MultiThreader(), SetSingleMethod(), and SingleMethodExecute().

int itk::MultiThreader::m_SpawnedThreadActiveFlag[ITK_MAX_THREADS]
private

Storage of MutexFunctions and ints used to control spawned threads and the spawned thread ids.

Definition at line 167 of file itkMultiThreader.h.

Referenced by MultiThreader(), SpawnThread(), and TerminateThread().

MutexLock::Pointer itk::MultiThreader::m_SpawnedThreadActiveFlagLock[ITK_MAX_THREADS]
private

Definition at line 168 of file itkMultiThreader.h.

Referenced by MultiThreader(), SpawnThread(), and TerminateThread().

ThreadInfoStruct itk::MultiThreader::m_SpawnedThreadInfoArray[ITK_MAX_THREADS]
private

Definition at line 170 of file itkMultiThreader.h.

Referenced by MultiThreader(), and SpawnThread().

ThreadProcessIDType itk::MultiThreader::m_SpawnedThreadProcessID[ITK_MAX_THREADS]
private

Definition at line 169 of file itkMultiThreader.h.

ThreadInfoStruct itk::MultiThreader::m_ThreadInfoArray[ITK_MAX_THREADS]
private

An array of thread info containing a thread id (0, 1, 2, .. ITK_MAX_THREADS-1), the thread count, and a pointer to void so that user data can be passed to each thread.

Definition at line 159 of file itkMultiThreader.h.

Referenced by MultipleMethodExecute(), MultiThreader(), and SingleMethodExecute().


The documentation for this class was generated from the following files:

Generated at Sat Mar 8 2014 17:29:09 for Orfeo Toolbox with doxygen 1.8.3.1