Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Guard Class Template Reference

This data structure is meant to be used within a method or function... It performs automatic aquisition and release of a parameterized synchronization object <ACE_LOCK>. More...

`#include <Synch_T.h>`

Inheritance diagram for ACE_Guard:

[legend]
Collaboration diagram for ACE_Guard:

[legend]
List of all members.

## Public Methods
| ACE_Guard (ACE_LOCK &l)
| ACE_Guard (ACE_LOCK &l, int block)
| Implicitly and automatically acquire (or try to acquire) the lock. If <block> is non-0 then <acquire> the <ACE_LOCK>, else <tryacquire> it. More...
| ACE_Guard (ACE_LOCK &l, int block, int become_owner)
| Initialise the guard without implicitly acquiring the lock. The <become_owner> parameter indicates whether the guard should release the lock implicitly on destruction. The <block> parameter is ignored and is used here to disambiguate with the preceding constructor. More...
| ~ACE_Guard (void)
| Implicitly release the lock. More...
int | acquire (void)
| Explicitly acquire the lock. More...
int | tryacquire (void)
| Conditionally acquire the lock (i.e., won't block). More...
int | release (void)
| Explicitly release the lock, but only if it is held! More...
void | disown (void)
| Relinquish ownership of the lock so that it is not released implicitly in the destructor. More...
int | locked (void) const
| 1 if locked, 0 if couldn't acquire the lock (errno will contain the reason for this). More...
int | remove (void)
| Explicitly remove the lock. More...
void | dump (void) const
| Dump the state of an object. More...
## Protected Methods
| ACE_Guard (ACE_LOCK *lock)
| Helper, meant for subclass only. More...
## Protected Attributes
ACE_LOCK * | lock_
| Pointer to the ACE_LOCK we're guarding. More...
int | owner_
| Keeps track of whether we acquired the lock or failed. More...
## Private Methods
void | operator= (const ACE_Guard< ACE_LOCK > &)
| ACE_Guard (const ACE_Guard< ACE_LOCK > &)

## Detailed Description

### template<class ACE_LOCK>
class ACE_Guard< ACE_LOCK >

This data structure is meant to be used within a method or function... It performs automatic aquisition and release of a parameterized synchronization object <ACE_LOCK>.

The <ACE_LOCK> class given as an actual parameter must provide at the very least the <acquire>, <tryacquire>, <release>, and <remove> methods.

## Constructor & Destructor Documentation

template<class ACE_LOCK>
ACE_INLINE ACE_Guard< ACE_LOCK >::ACE_Guard | ( | ACE_LOCK & | l | ) |

template<class ACE_LOCK>
ACE_INLINE ACE_Guard< ACE_LOCK >::ACE_Guard | ( | ACE_LOCK & | l,
|  | int | block
| ) |

| Implicitly and automatically acquire (or try to acquire) the lock. If <block> is non-0 then <acquire> the <ACE_LOCK>, else <tryacquire> it.

template<class ACE_LOCK>
ACE_INLINE ACE_Guard< ACE_LOCK >::ACE_Guard | ( | ACE_LOCK & | l,
|  | int | block,
|  | int | become_owner
| ) |

| Initialise the guard without implicitly acquiring the lock. The <become_owner> parameter indicates whether the guard should release the lock implicitly on destruction. The <block> parameter is ignored and is used here to disambiguate with the preceding constructor.

template<class ACE_LOCK>
ACE_INLINE ACE_Guard< ACE_LOCK >::~ACE_Guard | ( | void |  | ) |

| Implicitly release the lock.

template<class ACE_LOCK>
ACE_Guard< ACE_LOCK >::ACE_Guard | ( | ACE_LOCK * | lock | ) | `[inline, protected]`

| Helper, meant for subclass only.

template<class ACE_LOCK>
ACE_Guard< ACE_LOCK >::ACE_Guard | ( | const ACE_Guard< ACE_LOCK > & |  | ) | `[private]`

## Member Function Documentation

template<class ACE_LOCK>
ACE_INLINE int ACE_Guard< ACE_LOCK >::acquire | ( | void |  | ) |

| Explicitly acquire the lock. Reimplemented in ACE_Write_Guard, and ACE_Read_Guard.

template<class ACE_LOCK>
ACE_INLINE void ACE_Guard< ACE_LOCK >::disown | ( | void |  | ) |

| Relinquish ownership of the lock so that it is not released implicitly in the destructor.

template<class ACE_LOCK>
void ACE_Guard< ACE_LOCK >::dump | ( | void |  | ) | const

| Dump the state of an object. Reimplemented in ACE_Write_Guard, and ACE_Read_Guard.

template<class ACE_LOCK>
ACE_INLINE int ACE_Guard< ACE_LOCK >::locked | ( | void |  | ) | const

| 1 if locked, 0 if couldn't acquire the lock (errno will contain the reason for this).

template<class ACE_LOCK>
void ACE_Guard< ACE_LOCK >::operator= | ( | const ACE_Guard< ACE_LOCK > & |  | ) | `[private]`

template<class ACE_LOCK>
ACE_INLINE int ACE_Guard< ACE_LOCK >::release | ( | void |  | ) |

| Explicitly release the lock, but only if it is held!

template<class ACE_LOCK>
ACE_INLINE int ACE_Guard< ACE_LOCK >::remove | ( | void |  | ) |

| Explicitly remove the lock.

template<class ACE_LOCK>
ACE_INLINE int ACE_Guard< ACE_LOCK >::tryacquire | ( | void |  | ) |

| Conditionally acquire the lock (i.e., won't block). Reimplemented in ACE_Write_Guard, and ACE_Read_Guard.

## Member Data Documentation

template<class ACE_LOCK>
ACE_LOCK* ACE_Guard::lock_`[protected]`

| Pointer to the ACE_LOCK we're guarding.

template<class ACE_LOCK>
int ACE_Guard::owner_`[protected]`

| Keeps track of whether we acquired the lock or failed.

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

- Synch_T.h
- Synch_T.cpp
- Synch_T.i