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

osg::Barrier Class Reference
[Multithreading]

#include <OSGBarrier.h>

Inheritance diagram for osg::Barrier:

osg::PThreadBarrierBase osg::BarrierCommonBase osg::MPBase osg::MemoryObject List of all members.

Public Types

typedef MPBarrierType Type

Public Member Functions

Enter
*void enter (void)
void enter (UInt32 uiNumWaitFor)
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

Get
*static Barrierget (const Char8 *szName)
static Barrierfind (const Char8 *szName)
static Barriercreate (void)
static const MPBarrierTypegetClassType (void)
Class Get
*static const MPTypegetStaticType (void)
static UInt32 getStaticTypeId (void)

Protected Types

typedef PthreadBarrierBase Inherited

Protected Member Functions

Constructors
Barrier (const Char8 *szName, UInt32 uiId)
Destructor
*virtual ~Barrier (void)
Construction
*bool init (void)
Destruction
*void shutdown (void)
Set
*void setNumWaitFor (UInt32 uiNumWaitFor)

Static Protected Member Functions

Construction
*static Barriercreate (const Char8 *szName, UInt32 uiId)

Protected Attributes

UInt32 _uiBarrierId
volatile UInt32 _uiNumWaitFor
Class Specific
Char8_szName

Static Protected Attributes

static MPBarrierType _type

Private Member Functions

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

Friends

class MPFieldStore< Barrier >

Detailed Description

Definition at line 362 of file OSGBarrier.h.


Member Typedef Documentation

typedef MPBarrierType osg::Barrier::Type
 

Definition at line 368 of file OSGBarrier.h.

typedef PthreadBarrierBase osg::Barrier::Inherited [protected]
 

Reimplemented from osg::PThreadBarrierBase.

Definition at line 394 of file OSGBarrier.h.


Constructor & Destructor Documentation

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

Definition at line 275 of file OSGBarrier.cpp.

Referenced by create().

00276                                        :
00277     Inherited(szName, uiId)
00278 {
00279 }

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

Definition at line 283 of file OSGBarrier.cpp.

References osg::ThreadManager::removeBarrier(), osg::PThreadBarrierBase::shutdown(), and osg::ThreadManager::the().

00284 {
00285     ThreadManager::the()->removeBarrier(this);
00286 
00287     shutdown();
00288 }

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


Member Function Documentation

Barrier * Barrier::get const Char8 szName  )  [static]
 

Definition at line 292 of file OSGBarrier.cpp.

References osg::ThreadManager::getBarrier(), and osg::ThreadManager::the().

Referenced by create(), and osg::DgramQueue::DgramQueue().

00293 {
00294     return ThreadManager::the()->getBarrier(szName, "OSGBarrier");
00295 }

Barrier * Barrier::find const Char8 szName  )  [static]
 

Definition at line 297 of file OSGBarrier.cpp.

References osg::ThreadManager::findBarrier(), and osg::ThreadManager::the().

00298 {
00299     return ThreadManager::the()->findBarrier(szName);
00300 }

Barrier * osg::Barrier::create void   )  [inline, static]
 

Definition at line 164 of file OSGBarrier.inl.

References get().

00165 {
00166     return Barrier::get(NULL);
00167 }

const MPBarrierType & osg::Barrier::getClassType void   )  [inline, static]
 

Definition at line 170 of file OSGBarrier.inl.

References _type.

Referenced by osg::ThreadManager::init().

00171 {
00172     return _type;
00173 }

void osg::Barrier::enter void   )  [inline]
 

Reimplemented from osg::PThreadBarrierBase.

Definition at line 179 of file OSGBarrier.inl.

References osg::PThreadBarrierBase::enter().

Referenced by osg::DgramQueue::get(), osg::DgramQueue::put(), and osg::DgramQueue::wait().

00180 {
00181     Inherited::enter();
00182 }

void osg::Barrier::enter UInt32  uiNumWaitFor  )  [inline]
 

Reimplemented from osg::PThreadBarrierBase.

Definition at line 185 of file OSGBarrier.inl.

References osg::PThreadBarrierBase::enter().

00186 {
00187     Inherited::enter(uiNumWaitFor);
00188 }

Barrier * Barrier::create const Char8 szName,
UInt32  uiId
[static, protected]
 

Definition at line 305 of file OSGBarrier.cpp.

References Barrier(), and osg::PThreadBarrierBase::init().

00307 {
00308     Barrier *returnValue = NULL;
00309 
00310     returnValue = new Barrier(szName, uiId);
00311 
00312     if(returnValue->init() == false)
00313     {
00314         delete returnValue;
00315         returnValue = NULL;
00316    }
00317 
00318     return returnValue;
00319 }

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

bool PThreadBarrierBase::init void   )  [protected, inherited]
 

Definition at line 105 of file OSGBarrier.cpp.

References osg::PThreadBarrierBase::_pLockOne, osg::PThreadBarrierBase::_pWakeupCondition, osg::PThreadBarrierBase::_uiCount, and osg::PThreadBarrierBase::_uiCurrentCond.

Referenced by create().

00106 {
00107     pthread_cond_init (&(_pWakeupCondition[0]), NULL);
00108     pthread_cond_init (&(_pWakeupCondition[1]), NULL);
00109     pthread_mutex_init(&(_pLockOne),            NULL);
00110 
00111     _uiCount       = 0;
00112     _uiCurrentCond = 0;
00113 
00114     return true;
00115 }

void PThreadBarrierBase::shutdown void   )  [protected, inherited]
 

Definition at line 119 of file OSGBarrier.cpp.

References osg::PThreadBarrierBase::_pLockOne, and osg::PThreadBarrierBase::_pWakeupCondition.

Referenced by ~Barrier().

00120 {
00121     pthread_cond_destroy (&(_pWakeupCondition[0]));
00122     pthread_cond_destroy (&(_pWakeupCondition[1]));
00123     pthread_mutex_destroy(&(_pLockOne));
00124 }

void osg::BarrierCommonBase::setNumWaitFor UInt32  uiNumWaitFor  )  [inline, protected, inherited]
 

Definition at line 42 of file OSGBarrier.inl.

References osg::BarrierCommonBase::_uiNumWaitFor.

00043 {
00044     _uiNumWaitFor = uiNumWaitFor;
00045 }

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 MPFieldStore< Barrier > [friend]
 

Definition at line 424 of file OSGBarrier.h.


Member Data Documentation

MPBarrierType Barrier::_type [static, protected]
 

Reimplemented from osg::MPBase.

Referenced by getClassType().

UInt32 osg::BarrierCommonBase::_uiBarrierId [protected, inherited]
 

Definition at line 86 of file OSGBarrier.h.

volatile UInt32 osg::BarrierCommonBase::_uiNumWaitFor [protected, inherited]
 

Definition at line 87 of file OSGBarrier.h.

Referenced by osg::PThreadBarrierBase::enter(), and osg::BarrierCommonBase::setNumWaitFor().

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:32 2005 for OpenSG by  doxygen 1.4.3