![]() |
Orfeo Toolbox
3.16
|
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 Self > | ConstPointer |
| typedef SmartPointer< Self > | Pointer |
| 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 () |
| Command * | GetCommand (unsigned long tag) |
| bool | GetDebug () const |
| MetaDataDictionary & | GetMetaDataDictionary (void) |
| const MetaDataDictionary & | GetMetaDataDictionary (void) const |
| virtual unsigned long | GetMTime () const |
| virtual const char * | GetNameOfClass () const |
| virtual int | GetNumberOfThreads () const |
| virtual int | GetReferenceCount () const |
| bool | HasObserver (const EventObject &event) const |
| void | InvokeEvent (const EventObject &) |
| void | InvokeEvent (const EventObject &) const |
| 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 (int index, ThreadFunctionType, void *data) |
| void | SetNumberOfThreads (int numberOfThreads) |
| virtual void | SetReferenceCount (int) |
| void | SetSingleMethod (ThreadFunctionType, void *data) |
| void | SingleMethodExecute () |
| int | SpawnThread (ThreadFunctionType, void *data) |
| void | TerminateThread (int thread_id) |
| virtual void | UnRegister () const |
Static Public Member Functions | |
| static void | BreakOnError () |
| static int | GetGlobalDefaultNumberOfThreads () |
| static int | GetGlobalMaximumNumberOfThreads () |
| static bool | GetGlobalWarningDisplay () |
| static void | GlobalWarningDisplayOff () |
| static void | GlobalWarningDisplayOn () |
| static Pointer | New () |
| static void | SetGlobalDefaultNumberOfThreads (int val) |
| static void | SetGlobalMaximumNumberOfThreads (int val) |
| static void | SetGlobalWarningDisplay (bool flag) |
Protected Types | |
| typedef int | InternalReferenceCountType |
Protected Member Functions | |
| MultiThreader () | |
| ~MultiThreader () | |
| 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 |
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 ITK_THREAD_RETURN_TYPE | SingleMethodProxy (void *arg) |
Static Private Attributes | |
| static int | m_GlobalDefaultNumberOfThreads = 0 |
| static int | m_GlobalMaximumNumberOfThreads = ITK_MAX_THREADS |
Friends | |
| class | ProcessObject |
A class for performing multithreaded execution.
Multithreader is a class that provides support for multithreaded execution using sproc() on an SGI, or 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.
Definition at line 138 of file itkMultiThreader.h.
| typedef SmartPointer<const Self> itk::MultiThreader::ConstPointer |
Reimplemented from itk::Object.
Definition at line 145 of file itkMultiThreader.h.
|
protectedinherited |
Define the type of the reference count according to the target. This allows the use of atomic operations
Definition at line 137 of file itkLightObject.h.
| typedef SmartPointer<Self> itk::MultiThreader::Pointer |
Reimplemented from itk::Object.
Definition at line 144 of file itkMultiThreader.h.
Standard class typedefs.
Reimplemented from itk::Object.
Definition at line 142 of file itkMultiThreader.h.
| typedef Object itk::MultiThreader::Superclass |
Reimplemented from itk::Object.
Definition at line 143 of file itkMultiThreader.h.
|
protected |
Definition at line 245 of file itkMultiThreader.cxx.
References itk::MultiThreader::ThreadInfoStruct::ActiveFlag, itk::MultiThreader::ThreadInfoStruct::ActiveFlagLock, GetGlobalDefaultNumberOfThreads(), ITK_MAX_THREADS, m_MultipleData, m_MultipleMethod, m_NumberOfThreads, m_SingleData, m_SingleMethod, m_SpawnedThreadActiveFlag, m_SpawnedThreadActiveFlagLock, m_SpawnedThreadInfoArray, m_ThreadInfoArray, and itk::MultiThreader::ThreadInfoStruct::ThreadID.
|
protected |
Definition at line 266 of file itkMultiThreader.cxx.
|
private |
|
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 389 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().
|
inherited |
Definition at line 401 of file itkObject.cxx.
References itk::SubjectImplementation::AddObserver().
|
staticinherited |
This method is called when itkExceptionMacro executes. It allows the debugger to break on error.
Definition at line 149 of file itkLightObject.cxx.
|
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.
|
virtualinherited |
Turn debugging output off.
Definition at line 253 of file itkObject.cxx.
|
virtualinherited |
Turn debugging output on.
Definition at line 242 of file itkObject.cxx.
|
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 88 of file itkLightObject.cxx.
|
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 917 of file itkMultiThreader.cxx.
References NULL.
Referenced by SingleMethodExecute().
|
inherited |
Get the command associated with the given tag. NOTE: This returns a pointer to a Command, but it is safe to asign 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 414 of file itkObject.cxx.
References itk::Object::GetCommand(), and NULL.
Referenced by itk::Object::GetCommand().
|
inherited |
Get the value of the debug flag.
Definition at line 264 of file itkObject.cxx.
Referenced by otb::ogr::ImageReference< double >::GetDebug().
|
static |
Definition at line 125 of file itkMultiThreader.cxx.
References m_GlobalDefaultNumberOfThreads, m_GlobalMaximumNumberOfThreads, and NULL.
Referenced by MultiThreader(), and otb::JPEG2000ImageIO::Read().
|
static |
Definition at line 85 of file itkMultiThreader.cxx.
References m_GlobalMaximumNumberOfThreads.
Referenced by itk::LabelMapToBinaryImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::LabelContourImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::BinaryImageToLabelMapFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::BinaryContourImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), and itk::ConnectedComponentImageFilter< TInputImage, TOutputImage, TMaskImage >::BeforeThreadedGenerateData().
|
staticinherited |
Get the value of the global debug output control flag.
Definition at line 381 of file itkObject.cxx.
|
inherited |
Reimplemented in otb::ImageMetadataInterfaceBase.
Definition at line 532 of file itkObject.cxx.
References NULL.
Referenced by otb::RenderingImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData(), itk::Brains2MaskImageIO::CanReadFile(), otb::DataNode< TPrecision, VDimension, TValuePrecision >::CopyFieldList(), otb::VectorImage< TPixel, VImageDimension >::CopyInformation(), otb::Image< TPixel, VImageDimension >::CopyInformation(), itk::GDCMImageIO::GetBodyPart(), itk::GDCMImageIO::GetInstitution(), itk::GDCMImageIO::GetManufacturer(), itk::GDCMImageIO::GetModality(), itk::GDCMImageIO::GetModel(), itk::GDCMImageIO::GetNumberOfSeriesInStudy(), itk::GDCMImageIO::GetNumberOfStudyRelatedSeries(), itk::GDCMImageIO::GetPatientAge(), itk::GDCMImageIO::GetPatientDOB(), itk::GDCMImageIO::GetPatientID(), itk::GDCMImageIO::GetPatientName(), itk::GDCMImageIO::GetPatientSex(), itk::GDCMImageIO::GetScanOptions(), itk::GDCMImageIO::GetStudyDate(), itk::GDCMImageIO::GetStudyDescription(), itk::GDCMImageIO::GetStudyID(), itk::GDCMImageIO::GetValueFromTag(), otb::GDALImageIO::InternalReadImageInformation(), itk::GDCMImageIO::InternalReadImageInformation(), otb::GDALImageIO::InternalWriteImageInformation(), otb::RAMDrivenAdaptativeStreamingManager< TImage >::PrepareStreaming(), itk::DICOMImageIO2::Read(), itk::DICOMImageIO2::ReadImageInformation(), itk::NrrdImageIO::ReadImageInformation(), otb::JPEG2000ImageIO::ReadImageInformation(), itk::MetaImageIO::ReadImageInformation(), itk::VoxBoCUBImageIO::ReadImageInformation(), itk::MRCImageIO::ReadImageInformation(), itk::IPLCommonImageIO::ReadImageInformation(), itk::PhilipsRECImageIO::ReadImageInformation(), itk::AnalyzeImageIO::ReadImageInformation(), itk::Bruker2DSEQImageIO::ReadImageInformation(), otb::ImageMetadataInterfaceBase::SetImage(), itk::NiftiImageIO::SetImageIOMetadataFromNIfTI(), otb::VectorDataToLabelImageFilter< TVectorData, TOutputImage >::SetOutputParametersFromImage(), itk::NrrdImageIO::Write(), itk::GDCMImageIO::Write(), and itk::PolygonGroupSpatialObjectXMLFileWriter::WriteFile().
|
inherited |
Reimplemented in otb::ImageMetadataInterfaceBase.
Definition at line 543 of file itkObject.cxx.
References NULL.
|
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::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 >, itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >, itk::SpatialObject< TDimension >, itk::SpatialObject< 3 >, itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >, itk::MultiResolutionImageRegistrationMethod< TFixedImage, TMovingImage >, itk::ImageRegistrationMethod< TFixedImage, TMovingImage >, itk::VectorResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >, itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >, itk::TransformToDeformationFieldSource< TOutputImage, TTransformPrecisionType >, itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >, itk::PointSetToImageRegistrationMethod< TFixedPointSet, TMovingImage >, itk::BoundingBox< TPointIdentifier, VPointDimension, TCoordRep, TPointsContainer >, itk::PointSetToPointSetRegistrationMethod< TFixedPointSet, TMovingPointSet >, itk::DeformationFieldSource< TOutputImage >, itk::ImageSpatialObject< TDimension, TPixelType >, itk::ImageSpatialObject< TDimension, unsigned char >, itk::MeshSpatialObject< TMesh >, and itk::SceneSpatialObject< TSpaceDimension >.
Definition at line 286 of file itkObject.cxx.
Referenced by itk::DeformationFieldSource< TOutputImage >::GetMTime(), itk::BoundingBox< TPointIdentifier, VPointDimension, TCoordRep, TPointsContainer >::GetMTime(), itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetMTime(), itk::TransformToDeformationFieldSource< TOutputImage, TTransformPrecisionType >::GetMTime(), itk::VectorResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >::GetMTime(), itk::SpatialObject< TDimension >::GetMTime(), itk::ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType >::GetMTime(), itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >::GetObjectMTime(), otb::Function::NoStretchRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::Initialize(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::Initialize(), itk::VTKImageExportBase::PipelineModifiedCallback(), and itk::ProcessObject::UpdateOutputInformation().
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::Object.
|
virtual |
|
inlinevirtualinherited |
Gets the reference count on this object.
Definition at line 105 of file itkLightObject.h.
|
inlinestaticinherited |
Definition at line 100 of file itkObject.h.
References itk::Object::SetGlobalWarningDisplay().
Referenced by itk::OutputWindow::DisplayText(), itk::Win32OutputWindow::PromptText(), and itk::Win32OutputWindow::WndProc().
|
inlinestaticinherited |
Definition at line 98 of file itkObject.h.
References itk::Object::SetGlobalWarningDisplay().
|
inherited |
Return true if an observer is registered for this event.
Definition at line 467 of file itkObject.cxx.
|
inherited |
Call Execute on all the Commands observing this event id.
Definition at line 446 of file itkObject.cxx.
Referenced by otb::Wrapper::Application::AddProcess(), itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >::IterateThreaderCallback(), and itk::VTKImageExportBase::UpdateDataCallback().
|
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 457 of file itkObject.cxx.
|
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 >, otb::SurfaceAdjacencyEffect6SCorrectionSchemeFilter< TInputImage, TOutputImage >, 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::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::GenericRSTransform< TScalarType, NInputDimensions, NOutputDimensions >, otb::MeanShiftImageFilter< TInputImage, TOutputImage, TLabeledOutput, TBufferConverter >, otb::MeanShiftImageFilter< TInputImage, TOutputImage, TLabeledOutput, MeanShift::VectorBufferConverter >, otb::GCPsToRPCSensorModelImageFilter< TImage >, otb::Polygon< TValue >, otb::ImageRegionAdaptativeSplitter< VImageDimension >, otb::GenericInterpolateImageFunction< TInputImage, TFunction, TBoundaryCondition, TCoordRep >, itk::GrayscaleDilateImageFilter< TInputImage, TOutputImage, TKernel >, otb::PolyLineParametricPathWithValue< TValue, VDimension >, itk::GrayscaleErodeImageFilter< TInputImage, TOutputImage, TKernel >, otb::PolyLineParametricPathWithValue< TValue, 2 >, itk::MorphologicalGradientImageFilter< TInputImage, TOutputImage, TKernel >, otb::PhysicalToRPCSensorModelImageFilter< TImage >, itk::GrayscaleMorphologicalClosingImageFilter< TInputImage, TOutputImage, TKernel >, itk::GrayscaleMorphologicalOpeningImageFilter< TInputImage, TOutputImage, TKernel >, itk::MiniPipelineSeparableImageFilter< TInputImage, TOutputImage, TFilter >, itk::MiniPipelineSeparableImageFilter< TInputImage, TOutputImage, RankImageFilter< TInputImage, TInputImage, FlatStructuringElement< ::itk::GetImageDimension< TInputImage >::ImageDimension > > >, itk::NormalizeImageFilter< TInputImage, TOutputImage >, and otb::StatisticsXMLFileReader< TMeasurementVector >.
Definition at line 297 of file itkObject.cxx.
Referenced by otb::Wrapper::InputImageListParameter::AddFromFileName(), otb::Wrapper::InputVectorDataListParameter::AddFromFileName(), otb::Wrapper::InputImageListParameter::AddImage(), otb::Wrapper::InputImageListParameter::AddNullElement(), otb::Wrapper::InputVectorDataListParameter::AddNullElement(), otb::Wrapper::StringListParameter::AddNullElement(), otb::VectorDataModel::AddPointToGeometry(), otb::Wrapper::InputVectorDataListParameter::AddVectorData(), otb::Wrapper::InputImageListParameter::ClearValue(), otb::Wrapper::InputVectorDataListParameter::ClearValue(), otb::VectorDataModel::DeleteGeometry(), otb::VectorDataModel::EndGeometry(), otb::Wrapper::InputImageListParameter::Erase(), otb::Wrapper::InputVectorDataListParameter::Erase(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::InsertNarrowBandNode(), otb::ImageWidget< TInputImage >::LinearInterpolationOff(), otb::ImageWidget< TInputImage >::LinearInterpolationOn(), itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixOffsetTransformBase(), otb::ogr::ImageReference< double >::Modified(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::SetAutoMinMax(), otb::BlendingImageFilter< TInputImage1, TInputImage2, TOutputImage >::SetBlendingFunction(), otb::ImageLayerGenerator< TImageLayer >::SetBlendingFunction(), otb::TileMapImageIO::SetCacheDirectory(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetCenter(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::SetChannelList(), itk::LBFGSBOptimizer::SetCostFunction(), itk::MINC2ImageIO::SetDimensionName(), itk::ImageIOBase::SetDimensions(), itk::ImageIOBase::SetDirection(), otb::Wrapper::InputImageListParameter::SetImageList(), itk::GDCMSeriesFileNames::SetInputDirectory(), otb::HistogramStatisticsFunction< TInputHistogram, TOutput >::SetInputHistogram(), otb::ImageToGenericRSOutputParameters< TImage >::SetInputKeywordList(), otb::Wrapper::InputVectorDataListParameter::SetListFromFileName(), otb::Wrapper::InputImageListParameter::SetListFromFileName(), otb::Function::RenderingFunction< TPixel, TRGBPixel >::SetListSample(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetMatrix(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::SetNarrowBand(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::SetNarrowBandInnerRadius(), itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >::SetNarrowBandTotalRadius(), otb::Wrapper::InputImageListParameter::SetNthFileName(), otb::Wrapper::InputVectorDataListParameter::SetNthFileName(), itk::ImageIOBase::SetNumberOfDimensions(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetOffset(), itk::ImageIOBase::SetOrigin(), otb::ImageToGenericRSOutputParameters< TImage >::SetOutputProjectionRef(), otb::MapProjectionAdapter::SetParameter(), otb::Function::GaussianRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::SetParameters(), otb::Function::StandardRenderingFunction< TPixel, TRGBPixel, TPixelRepresentationFunction, TTransferFunction >::SetParameters(), itk::ThresholdLabelerImageFilter< TInputImage, TOutputImage >::SetRealThresholds(), otb::ImageLayerGenerator< TImageLayer >::SetRenderingFunction(), otb::RenderingImageFilter< TInputImage, TOutputImage >::SetRenderingFunction(), itk::ImageIOBase::SetSpacing(), itk::ThresholdLabelerImageFilter< TInputImage, TOutputImage >::SetThresholds(), itk::Statistics::GoodnessOfFitFunctionBase< TInputHistogram >::SetTotalObservedScale(), itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >::SetTranslation(), otb::Wrapper::OutputFilenameParameter::SetValue(), otb::Wrapper::InputFilenameParameter::SetValue(), otb::Wrapper::ListViewParameter::SetValue(), otb::Wrapper::ChoiceParameter::SetValue(), otb::Wrapper::InputVectorDataListParameter::SetVectorDataList(), and otb::MapProjectionAdapter::SetWkt().
| 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 480 of file itkMultiThreader.cxx.
References ITK_MAX_THREADS, m_GlobalMaximumNumberOfThreads, m_MultipleData, m_MultipleMethod, m_NumberOfThreads, m_ThreadInfoArray, itk::MultiThreader::ThreadInfoStruct::NumberOfThreads, and itk::MultiThreader::ThreadInfoStruct::UserData.
|
static |
Method for creation through the object factory.
Reimplemented from itk::Object.
Referenced by itk::LoggerThreadWrapper< SimpleLoggerType >::LoggerThreadWrapper(), itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MatchCardinalityImageToImageMetric(), itk::ProcessObject::ProcessObject(), and SpawnThread().
|
private |
Reimplemented from itk::Object.
|
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 135 of file itkLightObject.cxx.
References itk::Indent::GetNextIndent().
Referenced by itk::operator<<().
|
protectedvirtualinherited |
Define a default print header for all objects.
Definition at line 320 of file itkLightObject.cxx.
|
protectedinherited |
Definition at line 478 of file itkObject.cxx.
|
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 830 of file itkMultiThreader.cxx.
References m_GlobalDefaultNumberOfThreads, m_GlobalMaximumNumberOfThreads, m_NumberOfThreads, and itk::Object::PrintSelf().
|
protectedvirtualinherited |
Define a default print trailer for all objects.
Definition at line 331 of file itkLightObject.cxx.
|
virtualinherited |
Increase the reference count (mark as used by another object).
Reimplemented from itk::LightObject.
Definition at line 309 of file itkObject.cxx.
Referenced by itk::ObjectFactoryBase::RegisterFactory().
|
inherited |
Remove all observers .
Definition at line 435 of file itkObject.cxx.
|
inherited |
Remove the observer with this tag value.
Definition at line 425 of file itkObject.cxx.
Referenced by otb::StreamingImageVirtualWriter< TInputImage >::GenerateData(), and otb::ImageFileWriter< TInputImage >::Update().
|
inherited |
Set the value of the debug flag. A non-zero value turns debugging on.
Definition at line 275 of file itkObject.cxx.
|
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 90 of file itkMultiThreader.cxx.
References m_GlobalDefaultNumberOfThreads, and m_GlobalMaximumNumberOfThreads.
|
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 64 of file itkMultiThreader.cxx.
References ITK_MAX_THREADS, m_GlobalDefaultNumberOfThreads, and m_GlobalMaximumNumberOfThreads.
|
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 370 of file itkObject.cxx.
Referenced by itk::Object::GlobalWarningDisplayOff(), and itk::Object::GlobalWarningDisplayOn().
|
inherited |
Reimplemented in otb::ImageMetadataInterfaceBase.
Definition at line 554 of file itkObject.cxx.
References NULL.
Referenced by otb::VectorImage< TPixel, VImageDimension >::CopyInformation(), and otb::Image< TPixel, VImageDimension >::CopyInformation().
| void itk::MultiThreader::SetMultipleMethod | ( | int | 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 295 of file itkMultiThreader.cxx.
References m_MultipleData, m_MultipleMethod, and m_NumberOfThreads.
| void itk::MultiThreader::SetNumberOfThreads | ( | int | 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 105 of file itkMultiThreader.cxx.
References m_GlobalMaximumNumberOfThreads, and m_NumberOfThreads.
Referenced by otb::JPEG2000ImageIO::Read().
|
virtualinherited |
Sets the reference count (use with care)
If there is a delete method, invoke it.
Reimplemented from itk::LightObject.
Definition at line 347 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 285 of file itkMultiThreader.cxx.
References m_SingleData, and m_SingleMethod.
Referenced by otb::JPEG2000ImageIO::Read().
| void itk::MultiThreader::SingleMethodExecute | ( | ) |
Execute the SingleMethod (as define by SetSingleMethod) 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 310 of file itkMultiThreader.cxx.
References DispatchSingleMethodThread(), ITK_MAX_THREADS, m_GlobalMaximumNumberOfThreads, m_NumberOfThreads, m_SingleData, m_SingleMethod, m_ThreadInfoArray, itk::MultiThreader::ThreadInfoStruct::NumberOfThreads, itk::MultiThreader::ThreadInfoStruct::SUCCESS, itk::MultiThreader::ThreadInfoStruct::ThreadFunction, itk::MultiThreader::ThreadInfoStruct::UserData, WaitForSingleMethodThread(), and itk::ExceptionObject::what().
Referenced by otb::JPEG2000ImageIO::Read().
|
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 843 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.
| int 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 687 of file itkMultiThreader.cxx.
References itk::MultiThreader::ThreadInfoStruct::ActiveFlag, itk::MultiThreader::ThreadInfoStruct::ActiveFlagLock, ITK_MAX_THREADS, m_SpawnedThreadActiveFlag, m_SpawnedThreadActiveFlagLock, m_SpawnedThreadInfoArray, m_SpawnedThreadProcessID, New(), itk::MultiThreader::ThreadInfoStruct::NumberOfThreads, and itk::MultiThreader::ThreadInfoStruct::UserData.
| void itk::MultiThreader::TerminateThread | ( | int | thread_id | ) |
Terminate the thread that was created with a SpawnThreadExecute()
Definition at line 788 of file itkMultiThreader.cxx.
References m_SpawnedThreadActiveFlag, m_SpawnedThreadActiveFlagLock, and m_SpawnedThreadProcessID.
|
virtualinherited |
Decrease the reference count (release by another object).
If there is a delete method, invoke it.
Reimplemented from itk::LightObject.
Definition at line 324 of file itkObject.cxx.
Referenced by itk::Object::New(), and itk::ObjectFactoryBase::UnRegisterFactory().
|
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 881 of file itkMultiThreader.cxx.
Referenced by SingleMethodExecute().
|
friend |
Friends of Multithreader. ProcessObject is a friend so that it can call PrintSelf() on its Multithreader.
Definition at line 332 of file itkMultiThreader.h.
|
staticprivate |
Definition at line 293 of file itkMultiThreader.h.
Referenced by GetGlobalDefaultNumberOfThreads(), PrintSelf(), SetGlobalDefaultNumberOfThreads(), and SetGlobalMaximumNumberOfThreads().
|
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 285 of file itkMultiThreader.h.
Referenced by GetGlobalDefaultNumberOfThreads(), GetGlobalMaximumNumberOfThreads(), MultipleMethodExecute(), PrintSelf(), SetGlobalDefaultNumberOfThreads(), SetGlobalMaximumNumberOfThreads(), SetNumberOfThreads(), and SingleMethodExecute().
|
private |
Definition at line 280 of file itkMultiThreader.h.
Referenced by MultipleMethodExecute(), MultiThreader(), and SetMultipleMethod().
|
private |
Definition at line 269 of file itkMultiThreader.h.
Referenced by MultipleMethodExecute(), MultiThreader(), and SetMultipleMethod().
|
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 304 of file itkMultiThreader.h.
Referenced by MultipleMethodExecute(), MultiThreader(), PrintSelf(), SetMultipleMethod(), SetNumberOfThreads(), and SingleMethodExecute().
|
mutableprotectedinherited |
Number of uses of this object by other objects.
Definition at line 141 of file itkLightObject.h.
|
mutableprotectedinherited |
Mutex lock to protect modification to the reference count
Definition at line 144 of file itkLightObject.h.
|
private |
Internal storage of the data.
Definition at line 279 of file itkMultiThreader.h.
Referenced by MultiThreader(), SetSingleMethod(), and SingleMethodExecute().
|
private |
The methods to invoke.
Definition at line 268 of file itkMultiThreader.h.
Referenced by MultiThreader(), SetSingleMethod(), and SingleMethodExecute().
|
private |
Storage of MutexFunctions and ints used to control spawned threads and the spawned thread ids.
Definition at line 273 of file itkMultiThreader.h.
Referenced by MultiThreader(), SpawnThread(), and TerminateThread().
|
private |
Definition at line 274 of file itkMultiThreader.h.
Referenced by MultiThreader(), SpawnThread(), and TerminateThread().
|
private |
Definition at line 276 of file itkMultiThreader.h.
Referenced by MultiThreader(), and SpawnThread().
|
private |
Definition at line 275 of file itkMultiThreader.h.
Referenced by SpawnThread(), and TerminateThread().
|
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 265 of file itkMultiThreader.h.
Referenced by MultipleMethodExecute(), MultiThreader(), and SingleMethodExecute().