Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkMultiThreader Class Reference

A class for performing multithreaded execution. More...

#include <vtkMultiThreader.h>

Inheritance diagram for vtkMultiThreader:

Inheritance graph
[legend]
Collaboration diagram for vtkMultiThreader:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetNumberOfThreads (int)
virtual int GetNumberOfThreads ()
void SingleMethodExecute ()
void MultipleMethodExecute ()
void SetSingleMethod (vtkThreadFunctionType, void *data)
void SetMultipleMethod (int index, vtkThreadFunctionType, void *data)
int SpawnThread (vtkThreadFunctionType, void *data)
void TerminateThread (int thread_id)

Static Public Methods

vtkMultiThreader * New ()
int IsTypeOf (const char *type)
vtkMultiThreader * SafeDownCast (vtkObject *o)
void SetGlobalMaximumNumberOfThreads (int val)
int GetGlobalMaximumNumberOfThreads ()
void SetGlobalDefaultNumberOfThreads (int val)
int GetGlobalDefaultNumberOfThreads ()

Protected Methods

 vtkMultiThreader ()
 ~vtkMultiThreader ()
 vtkMultiThreader (const vtkMultiThreader &)
void operator= (const vtkMultiThreader &)

Protected Attributes

int NumberOfThreads
ThreadInfoStruct ThreadInfoArray [VTK_MAX_THREADS]
vtkThreadFunctionType SingleMethod
vtkThreadFunctionType MultipleMethod [VTK_MAX_THREADS]
int SpawnedThreadActiveFlag [VTK_MAX_THREADS]
vtkMutexLockSpawnedThreadActiveFlagLock [VTK_MAX_THREADS]
vtkThreadProcessIDType SpawnedThreadProcessID [VTK_MAX_THREADS]
ThreadInfoStruct SpawnedThreadInfoArray [VTK_MAX_THREADS]
void * SingleData
void * MultipleData [VTK_MAX_THREADS]

Detailed Description

A class for performing multithreaded execution.

Date:
2000/12/10 20:08:13
Revision:
1.32

vtkMultithreader 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.

Examples:
vtkMultiThreader (examples)

Definition at line 151 of file vtkMultiThreader.h.


Constructor & Destructor Documentation

vtkMultiThreader::vtkMultiThreader   [protected]
 

vtkMultiThreader::~vtkMultiThreader   [protected]
 

vtkMultiThreader::vtkMultiThreader const vtkMultiThreader &    [inline, protected]
 

Definition at line 213 of file vtkMultiThreader.h.


Member Function Documentation

vtkMultiThreader* vtkMultiThreader::New   [static]
 

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkObject.

virtual const char* vtkMultiThreader::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

int vtkMultiThreader::IsTypeOf const char *    type [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

virtual int vtkMultiThreader::IsA const char *    type [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

vtkMultiThreader* vtkMultiThreader::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

void vtkMultiThreader::PrintSelf ostream &    os,
vtkIndent    indent
[virtual]
 

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.

Reimplemented from vtkObject.

virtual void vtkMultiThreader::SetNumberOfThreads int    [virtual]
 

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

virtual int vtkMultiThreader::GetNumberOfThreads   [virtual]
 

void vtkMultiThreader::SetGlobalMaximumNumberOfThreads int    val [static]
 

Set/Get the maximum number of threads to use when multithreading. This limits and overrides any other settings for multithreading. A value of zero indicates no limit.

int vtkMultiThreader::GetGlobalMaximumNumberOfThreads   [static]
 

void vtkMultiThreader::SetGlobalDefaultNumberOfThreads int    val [static]
 

Set/Get the value which is used to initialize the NumberOfThreads in the constructor. Initially this default is set to the number of processors or 8 (which ever is less).

int vtkMultiThreader::GetGlobalDefaultNumberOfThreads   [static]
 

void vtkMultiThreader::SingleMethodExecute  
 

Execute the SingleMethod (as define by SetSingleMethod) using this->NumberOfThreads threads.

void vtkMultiThreader::MultipleMethodExecute  
 

Execute the MultipleMethods (as define by calling SetMultipleMethod for each of the required this->NumberOfThreads methods) using this->NumberOfThreads threads.

void vtkMultiThreader::SetSingleMethod vtkThreadFunctionType   ,
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 vtkThreadFunctionType and must take a single argument of type void *.

void vtkMultiThreader::SetMultipleMethod int    index,
vtkThreadFunctionType   ,
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.

int vtkMultiThreader::SpawnThread vtkThreadFunctionType   ,
void *    data
 

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

void vtkMultiThreader::TerminateThread int    thread_id
 

Terminate the thread that was created with a SpawnThreadExecute()

void vtkMultiThreader::operator= const vtkMultiThreader &    [inline, protected]
 

Definition at line 214 of file vtkMultiThreader.h.


Member Data Documentation

int vtkMultiThreader::NumberOfThreads [protected]
 

Definition at line 217 of file vtkMultiThreader.h.

ThreadInfoStruct vtkMultiThreader::ThreadInfoArray[VTK_MAX_THREADS] [protected]
 

Definition at line 222 of file vtkMultiThreader.h.

vtkThreadFunctionType vtkMultiThreader::SingleMethod [protected]
 

Definition at line 225 of file vtkMultiThreader.h.

vtkThreadFunctionType vtkMultiThreader::MultipleMethod[VTK_MAX_THREADS] [protected]
 

Definition at line 226 of file vtkMultiThreader.h.

int vtkMultiThreader::SpawnedThreadActiveFlag[VTK_MAX_THREADS] [protected]
 

Definition at line 230 of file vtkMultiThreader.h.

vtkMutexLock* vtkMultiThreader::SpawnedThreadActiveFlagLock[VTK_MAX_THREADS] [protected]
 

Definition at line 231 of file vtkMultiThreader.h.

vtkThreadProcessIDType vtkMultiThreader::SpawnedThreadProcessID[VTK_MAX_THREADS] [protected]
 

Definition at line 232 of file vtkMultiThreader.h.

ThreadInfoStruct vtkMultiThreader::SpawnedThreadInfoArray[VTK_MAX_THREADS] [protected]
 

Definition at line 233 of file vtkMultiThreader.h.

void* vtkMultiThreader::SingleData [protected]
 

Definition at line 238 of file vtkMultiThreader.h.

void* vtkMultiThreader::MultipleData[VTK_MAX_THREADS] [protected]
 

Definition at line 239 of file vtkMultiThreader.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:55:04 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001