Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::PThreadLockBase Class Reference
[Multithreading]

#include <OSGLock.h>

Inheritance diagram for osg::PThreadLockBase:

osg::LockCommonBase osg::MPBase osg::MemoryObject osg::Lock List of all members.

Class Specific

Char8_szName
*static MPType _type

Public Member Functions

Get
*virtual MPTypegetType (void)
virtual const MPTypegetType (void) const
UInt32 getTypeId (void)
const Char8getCName (void) const
Reference Counting
*void addRef (void)
void subRef (void)
Int32 getRefCount (void)
Get
*virtual MPTypegetType (void)
virtual const MPTypegetType (void) const
UInt32 getTypeId (void)
const Char8getCName (void) const
Reference Counting
*void addRef (void)
void subRef (void)
Int32 getRefCount (void)

Static Public Member Functions

Class Get
*static const MPTypegetStaticType (void)
static UInt32 getStaticTypeId (void)
Class Get
*static const MPTypegetStaticType (void)
static UInt32 getStaticTypeId (void)

Protected Types

typedef LockCommonBase Inherited

Protected Member Functions

Constructors
PThreadLockBase (void)
 PThreadLockBase (const Char8 *szName, UInt32 uiId)
Destructor
*virtual ~PThreadLockBase (void)
Construction
*bool init (void)
Destruction
*void shutdown (void)
Lock
*void aquire (void)
void release (void)
bool request (void)

Protected Attributes

UInt32 _uiLockId

Private Member Functions

 PThreadLockBase (const PThreadLockBase &source)
 prohibit default function (move to 'public' if needed)
void operator= (const PThreadLockBase &source)
 prohibit default function (move to 'public' if needed)

Private Attributes

pthread_mutex_t _pLowLevelLock

Friends

class LockPool

Detailed Description

Definition at line 131 of file OSGLock.h.


Member Typedef Documentation

typedef LockCommonBase osg::PThreadLockBase::Inherited [protected]
 

Reimplemented from osg::LockCommonBase.

Reimplemented in osg::Lock.

Definition at line 141 of file OSGLock.h.


Constructor & Destructor Documentation

PThreadLockBase::PThreadLockBase void   )  [protected]
 

Definition at line 94 of file OSGLock.cpp.

00094                                     :
00095      Inherited    (),
00096     _pLowLevelLock()
00097 {
00098 }

PThreadLockBase::PThreadLockBase const Char8 szName,
UInt32  uiId
[protected]
 

Definition at line 100 of file OSGLock.cpp.

00101                                                        :
00102      Inherited    (szName, uiId),
00103     _pLowLevelLock()
00104 {
00105 }

PThreadLockBase::~PThreadLockBase void   )  [protected, virtual]
 

Definition at line 109 of file OSGLock.cpp.

00110 {
00111 }

osg::PThreadLockBase::PThreadLockBase const PThreadLockBase source  )  [private]
 


Member Function Documentation

bool PThreadLockBase::init void   )  [protected]
 

Definition at line 115 of file OSGLock.cpp.

References _pLowLevelLock.

Referenced by osg::Lock::create(), and osg::LockPool::init().

00116 {
00117     pthread_mutexattr_t lockAttr;
00118 
00119     pthread_mutexattr_init(&lockAttr);
00120 
00121     pthread_mutexattr_settype(&lockAttr, PTHREAD_MUTEX_RECURSIVE);
00122         
00123     pthread_mutex_init(&(_pLowLevelLock), &lockAttr);
00124 
00125     return true;
00126 }

void PThreadLockBase::shutdown void   )  [protected]
 

Definition at line 130 of file OSGLock.cpp.

References _pLowLevelLock.

Referenced by osg::LockPool::shutdown(), and osg::Lock::~Lock().

00131 {
00132     pthread_mutex_destroy(&(_pLowLevelLock));
00133 }

void PThreadLockBase::aquire void   )  [protected]
 

Reimplemented in osg::Lock.

Definition at line 137 of file OSGLock.cpp.

References _pLowLevelLock.

Referenced by osg::Lock::aquire().

00138 {
00139     pthread_mutex_lock(&(_pLowLevelLock));
00140 }

void PThreadLockBase::release void   )  [protected]
 

Reimplemented in osg::Lock.

Definition at line 142 of file OSGLock.cpp.

References _pLowLevelLock.

Referenced by osg::Lock::release().

00143 {
00144     pthread_mutex_unlock(&(_pLowLevelLock));
00145 }

bool PThreadLockBase::request void   )  [protected]
 

Reimplemented in osg::Lock.

Definition at line 147 of file OSGLock.cpp.

References _pLowLevelLock.

Referenced by osg::Lock::request().

00148 {
00149     return (pthread_mutex_trylock(&(_pLowLevelLock)) != EBUSY);
00150 }

void osg::PThreadLockBase::operator= const PThreadLockBase source  )  [private]
 

const MPType & MPBase::getStaticType void   )  [static, inherited]
 

Definition at line 253 of file OSGMPBase.cpp.

References osg::MPBase::_type.

00254 {
00255     return _type;
00256 }

UInt32 MPBase::getStaticTypeId void   )  [static, inherited]
 

Definition at line 259 of file OSGMPBase.cpp.

00260 {
00261     return 0;
00262 }

MPType & MPBase::getType void   )  [virtual, inherited]
 

Definition at line 265 of file OSGMPBase.cpp.

References osg::MPBase::_type.

Referenced by osg::MPBase::getTypeId().

00266 {
00267     return _type;
00268 }

const MPType & MPBase::getType void   )  const [virtual, inherited]
 

Definition at line 271 of file OSGMPBase.cpp.

References osg::MPBase::_type.

00272 {
00273     return _type;
00274 }

UInt32 MPBase::getTypeId void   )  [inherited]
 

Definition at line 277 of file OSGMPBase.cpp.

References osg::TypeBase::getId(), and osg::MPBase::getType().

00278 {
00279     return getType().getId();
00280 }

const Char8 * MPBase::getCName void   )  const [inherited]
 

Definition at line 283 of file OSGMPBase.cpp.

References osg::MPBase::_szName.

00284 {
00285     return _szName;
00286 }

void MemoryObject::addRef void   )  [inherited]
 

Definition at line 64 of file OSGMemoryObject.cpp.

References osg::MemoryObject::_refCount.

Referenced by osg::SharedObjectHandler::getSharedObject(), and osg::SharedObjectHandler::initialize().

00065 {
00066     _refCount++;
00067 }

void MemoryObject::subRef void   )  [inherited]
 

Definition at line 69 of file OSGMemoryObject.cpp.

References osg::MemoryObject::_refCount.

00070 {
00071     _refCount--;
00072 
00073     if(_refCount <= 0)
00074         delete this;
00075 }

Int32 MemoryObject::getRefCount void   )  [inherited]
 

Definition at line 77 of file OSGMemoryObject.cpp.

References osg::MemoryObject::_refCount.

00078 {
00079     return _refCount;
00080 }


Friends And Related Function Documentation

friend class LockPool [friend]
 

Reimplemented in osg::Lock.

Definition at line 185 of file OSGLock.h.


Member Data Documentation

pthread_mutex_t osg::PThreadLockBase::_pLowLevelLock [private]
 

Definition at line 187 of file OSGLock.h.

Referenced by aquire(), init(), release(), request(), and shutdown().

UInt32 osg::LockCommonBase::_uiLockId [protected, inherited]
 

Definition at line 92 of file OSGLock.h.

MPType MPBase::_type [static, protected, inherited]
 

Reimplemented in osg::Barrier, osg::BaseThread, osg::Lock, osg::LockPool, osg::Thread, and osg::ExternalThread.

Referenced by osg::MPBase::getStaticType(), and osg::MPBase::getType().

Char8* osg::MPBase::_szName [protected, inherited]
 

Definition at line 406 of file OSGMPBase.h.

Referenced by osg::MPBase::getCName(), osg::LockPool::init(), osg::MPBase::MPBase(), osg::BasePThreadBase::print(), and osg::MPBase::~MPBase().


The documentation for this class was generated from the following files:
Generated on Thu Aug 25 04:12:34 2005 for OpenSG by  doxygen 1.4.3