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

# ACE_Lock_Adapter Class Template Reference

This is an adapter that allows applications to transparently combine the <ACE_Lock> abstract base class (which contains pure virtual methods) with any of the other concrete ACE synchronization classes (e.g., <ACE_Mutex>, <ACE_Semaphore>, <ACE_RW_Mutex>, etc.). More...

`#include <Synch_T.h>`

Inheritance diagram for ACE_Lock_Adapter:

[legend]
Collaboration diagram for ACE_Lock_Adapter:

[legend]
List of all members.

## Public Types
typedef ACE_LOCKING_MECHANISM | ACE_LOCK
## Public Methods
| ACE_Lock_Adapter (ACE_LOCKING_MECHANISM &lock)
| Constructor. All locking requests will be forwarded to <lock>. More...
| ACE_Lock_Adapter (void)
| Constructor. Since no lock is provided by the user, one will be created internally. More...
virtual | ~ACE_Lock_Adapter (void)
| Destructor. If <lock_> was not passed in by the user, it will be deleted. More...
virtual int | acquire (void)
| Block the thread until the lock is acquired. More...
virtual int | tryacquire (void)
| Conditionally acquire the lock (i.e., won't block). More...
virtual int | release (void)
| Release the lock. More...
virtual int | acquire_read (void)
| Block until the thread acquires a read lock. More...
virtual int | acquire_write (void)
| Block until the thread acquires a write lock. More...
virtual int | tryacquire_read (void)
| Conditionally acquire a read lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. More...
virtual int | tryacquire_write (void)
| Conditionally acquire a write lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. More...
virtual int | tryacquire_write_upgrade (void)
| Conditionally try to upgrade a lock held for read to a write lock. More...
virtual int | remove (void)
| Explicitly destroy the lock. More...
## Private Attributes
ACE_LOCKING_MECHANISM * | lock_
| The concrete locking mechanism that all the methods delegate to. More...
int | delete_lock_
| This flag keep track of whether we are responsible for deleting the lock. More...

## Detailed Description

### template<class ACE_LOCKING_MECHANISM>
class ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >

This is an adapter that allows applications to transparently combine the <ACE_Lock> abstract base class (which contains pure virtual methods) with any of the other concrete ACE synchronization classes (e.g., <ACE_Mutex>, <ACE_Semaphore>, <ACE_RW_Mutex>, etc.).

This class uses a form of the Adapter pattern.

## Member Typedef Documentation

template<class ACE_LOCKING_MECHANISM>
typedef ACE_LOCKING_MECHANISM ACE_Lock_Adapter::ACE_LOCK

## Constructor & Destructor Documentation

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::ACE_Lock_Adapter | ( | ACE_LOCKING_MECHANISM & | lock | ) |

| Constructor. All locking requests will be forwarded to <lock>.

template<class ACE_LOCKING_MECHANISM>
ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::ACE_Lock_Adapter | ( | void |  | ) |

| Constructor. Since no lock is provided by the user, one will be created internally.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::~ACE_Lock_Adapter | ( | void |  | ) | `[virtual]`

| Destructor. If <lock_> was not passed in by the user, it will be deleted.

## Member Function Documentation

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::acquire | ( | void |  | ) | `[virtual]`

| Block the thread until the lock is acquired. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::acquire_read | ( | void |  | ) | `[virtual]`

| Block until the thread acquires a read lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::acquire_write | ( | void |  | ) | `[virtual]`

| Block until the thread acquires a write lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::release | ( | void |  | ) | `[virtual]`

| Release the lock. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::remove | ( | void |  | ) | `[virtual]`

| Explicitly destroy the lock. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::tryacquire | ( | void |  | ) | `[virtual]`

| Conditionally acquire the lock (i.e., won't block). Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::tryacquire_read | ( | void |  | ) | `[virtual]`

| Conditionally acquire a read lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::tryacquire_write | ( | void |  | ) | `[virtual]`

| Conditionally acquire a write lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Reimplemented from ACE_Lock.

template<class ACE_LOCKING_MECHANISM>
ACE_INLINE int ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >::tryacquire_write_upgrade | ( | void |  | ) | `[virtual]`

| Conditionally try to upgrade a lock held for read to a write lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Returns 0 on success, -1 on failure. Reimplemented from ACE_Lock.

## Member Data Documentation

template<class ACE_LOCKING_MECHANISM>
int ACE_Lock_Adapter::delete_lock_`[private]`

| This flag keep track of whether we are responsible for deleting the lock.

template<class ACE_LOCKING_MECHANISM>
ACE_LOCKING_MECHANISM* ACE_Lock_Adapter::lock_`[private]`

| The concrete locking mechanism that all the methods delegate to.

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

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