Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::FastMutexLock Class Reference
[OS System Objects]

Critical section locking class. More...

#include <itkFastMutexLock.h>

Inheritance diagram for itk::FastMutexLock:

Inheritance graph
[legend]
Collaboration diagram for itk::FastMutexLock:

Collaboration graph
[legend]
List of all members.

Public Types

typedef FastMutexLock Self
typedef Object Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer

Public Methods

virtual const char * GetClassName () const
void Lock (void)
void Unlock (void)

Static Public Methods

Pointer New ()

Protected Methods

 FastMutexLock ()
 ~FastMutexLock ()
void PrintSelf (std::ostream &os, Indent indent) const

Protected Attributes

SimpleFastMutexLock m_SimpleFastMutexLock

Detailed Description

Critical section locking class.

FastMutexLock allows the locking of variables which are accessed through different threads. This header file also defines SimpleFastMutexLock which is not a subclass of Object. The API is identical to that of MutexLock, and the behavior is identical as well, except on Windows 9x/NT platforms. The only difference on these platforms is that MutexLock is more flexible, in that it works across processes as well as across threads, but also costs more, in that it evokes a 600-cycle x86 ring transition. The FastMutexLock provides a higher-performance equivalent (on Windows) but won't work across processes. Since it is unclear how, in itk, an object at the itk level can be shared across processes in the first place, one should use FastMutexLock unless one has a very good reason to use MutexLock. If higher-performance equivalents for non-Windows platforms (Irix, SunOS, etc) are discovered, they should replace the implementations in this class

Definition at line 51 of file itkFastMutexLock.h.


Member Typedef Documentation

typedef SmartPointer<const Self> itk::FastMutexLock::ConstPointer
 

Reimplemented from itk::Object.

Definition at line 58 of file itkFastMutexLock.h.

typedef SmartPointer<Self> itk::FastMutexLock::Pointer
 

Reimplemented from itk::Object.

Definition at line 57 of file itkFastMutexLock.h.

typedef FastMutexLock itk::FastMutexLock::Self
 

Standard class typedefs.

Reimplemented from itk::Object.

Definition at line 55 of file itkFastMutexLock.h.

typedef Object itk::FastMutexLock::Superclass
 

Reimplemented from itk::Object.

Definition at line 56 of file itkFastMutexLock.h.


Constructor & Destructor Documentation

itk::FastMutexLock::FastMutexLock   [inline, protected]
 

Definition at line 73 of file itkFastMutexLock.h.

itk::FastMutexLock::~FastMutexLock   [inline, protected]
 

Definition at line 74 of file itkFastMutexLock.h.


Member Function Documentation

virtual const char* itk::FastMutexLock::GetClassName   const [virtual]
 

Run-time type information.

Reimplemented from itk::Object.

void itk::FastMutexLock::Lock void    [inline]
 

Lock the itkFastMutexLock.

Definition at line 85 of file itkFastMutexLock.h.

References itk::SimpleFastMutexLock::Lock(), and m_SimpleFastMutexLock.

Pointer itk::FastMutexLock::New   [static]
 

Method for creation.

Reimplemented from itk::Object.

void itk::FastMutexLock::PrintSelf std::ostream &    os,
Indent    indent
const [protected, 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 itk::Object.

void itk::FastMutexLock::Unlock void    [inline]
 

Unlock the FastMutexLock.

Definition at line 90 of file itkFastMutexLock.h.

References m_SimpleFastMutexLock, and itk::SimpleFastMutexLock::Unlock().


Member Data Documentation

SimpleFastMutexLock itk::FastMutexLock::m_SimpleFastMutexLock [protected]
 

Definition at line 76 of file itkFastMutexLock.h.

Referenced by Lock(), and Unlock().


The documentation for this class was generated from the following file:
Generated at Wed Mar 12 01:16:02 2003 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000