vpr::Guard< LOCK_TYPE > Class Template Reference

Guard wrapper. More...

#include <vpr/Sync/Guard.h>

Collaboration diagram for vpr::Guard< LOCK_TYPE >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Guard (LOCK_TYPE &lock, int block=1)
 Acquires the lock implicitly.
 ~Guard ()
 Releases the lock.
const bool & locked ()
 
Returns:
true is returned if this guard is locked.

vpr::ReturnStatus acquire ()
 Acquires the lock.
vpr::ReturnStatus tryAcquire ()
 Tries to acquire lock.
vpr::ReturnStatus release ()
 Explicity releases the lock.

Detailed Description

template<class LOCK_TYPE>
class vpr::Guard< LOCK_TYPE >

Guard wrapper.

Date:
January 31, 1997

Definition at line 59 of file Guard.h.


Constructor & Destructor Documentation

template<class LOCK_TYPE>
vpr::Guard< LOCK_TYPE >::Guard ( LOCK_TYPE &  lock,
int  block = 1 
) [inline]

Acquires the lock implicitly.

If block is 1 then use a blocking mutex acquisition operationg.

Definition at line 66 of file Guard.h.

References vpr::Guard< LOCK_TYPE >::acquire(), vpr::ReturnStatus::success(), and vpr::Guard< LOCK_TYPE >::tryAcquire().

00066                                          : mTheLock(&lock)
00067    {
00068       mLockStatus = block ? acquire().success() : tryAcquire().success();
00069    }

template<class LOCK_TYPE>
vpr::Guard< LOCK_TYPE >::~Guard (  )  [inline]

Releases the lock.

Definition at line 72 of file Guard.h.

00073    {
00074       if ( mLockStatus )
00075       {
00076          mTheLock->release();
00077       }
00078    }


Member Function Documentation

template<class LOCK_TYPE>
const bool& vpr::Guard< LOCK_TYPE >::locked (  )  [inline]

Returns:
true is returned if this guard is locked.

Returns:
false is returned if this guard is not locked.

Definition at line 84 of file Guard.h.

00085    {
00086       return mLockStatus;
00087    }

template<class LOCK_TYPE>
vpr::ReturnStatus vpr::Guard< LOCK_TYPE >::acquire (  )  [inline]

Acquires the lock.

Definition at line 90 of file Guard.h.

References vpr::ReturnStatus::success().

Referenced by vpr::Guard< LOCK_TYPE >::Guard().

00091    {
00092       vpr::ReturnStatus status = mTheLock->acquire();
00093       mLockStatus = status.success();
00094       return status;
00095    }

template<class LOCK_TYPE>
vpr::ReturnStatus vpr::Guard< LOCK_TYPE >::tryAcquire (  )  [inline]

Tries to acquire lock.

Definition at line 98 of file Guard.h.

References vpr::ReturnStatus::success().

Referenced by vpr::Guard< LOCK_TYPE >::Guard().

00099    {
00100       vpr::ReturnStatus status = mTheLock->tryAcquire();
00101       mLockStatus = status.success();
00102       return status;
00103    }

template<class LOCK_TYPE>
vpr::ReturnStatus vpr::Guard< LOCK_TYPE >::release (  )  [inline]

Explicity releases the lock.

Definition at line 106 of file Guard.h.

00107    {
00108       mLockStatus = false;
00109       return mTheLock->release();
00110    }


The documentation for this class was generated from the following file:
Generated on Thu Jan 4 10:55:51 2007 for VR Juggler Portable Runtime by  doxygen 1.5.1