zeus::TCriticalSection Class Reference

#include <CriticalSection.h>

Inheritance diagram for zeus::TCriticalSection:

zeus::TZObject zeus::ICriticalSection zeus::IZUnknown zeus::IZUnknown

List of all members.

Public Types

enum  ELockType { etFast, etRecursive, etError }

Public Member Functions

 TCriticalSection (ELockType eType=etFast)
bool isLocked ()
virtual void MQUALIFIER enter ()
virtual void MQUALIFIER leave ()
virtual Retval MQUALIFIER askForInterface (Uint uiInterfaceID, IZUnknown *&rpIface)
virtual void MQUALIFIER addRef () const
virtual void MQUALIFIER release () const

Protected Member Functions

virtual ~TCriticalSection ()


Detailed Description

This class implements a critical section (mutex) for multithreading

Member Enumeration Documentation

This type is used to define the type of the critical section. This is not supported on Win32 API.

Enumerator:
etFast 
etRecursive 
etError 


Constructor & Destructor Documentation

TCriticalSection::TCriticalSection ( ELockType  eType = etFast  ) 

Creates a critical section object

Parameters:
eType : Type of the lock

TCriticalSection::~TCriticalSection (  )  [protected, virtual]

Destroys a critical section object


Member Function Documentation

bool TCriticalSection::isLocked (  ) 

Checks if the lock is active.

Return values:
true : active (an other thread is using the lock)
false : lock is free

void MQUALIFIER zeus::TCriticalSection::enter (  )  [inline, virtual]

Enters the lock

Implements zeus::ICriticalSection.

void MQUALIFIER zeus::TCriticalSection::leave (  )  [inline, virtual]

Leaves the lock

Implements zeus::ICriticalSection.

virtual Retval MQUALIFIER zeus::TCriticalSection::askForInterface ( Uint  uiInterfaceID,
IZUnknown *&  rpIface 
) [virtual]

Reimplemented from zeus::TZObject.

virtual void MQUALIFIER zeus::TCriticalSection::addRef (  )  const [virtual]

See also:
IZUnknown::addRef

Reimplemented from zeus::TZObject.

virtual void MQUALIFIER zeus::TCriticalSection::release (  )  const [virtual]

See also:
IZUnknown::release

Reimplemented from zeus::TZObject.


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


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Wed Oct 28 21:42:34 2009