#include <Guard_T.h>
Inheritance diagram for ACE_Guard< ACE_LOCK >:
Public Member Functions | |
ACE_Guard (ACE_LOCK &l) | |
ACE_Guard (ACE_LOCK &l, int block) | |
ACE_Guard (ACE_LOCK &l, int block, int become_owner) | |
~ACE_Guard (void) | |
Implicitly release the lock. | |
int | acquire (void) |
Explicitly acquire the lock. | |
int | tryacquire (void) |
Conditionally acquire the lock (i.e., won't block). | |
int | release (void) |
Explicitly release the lock, but only if it is held! | |
void | disown (void) |
int | locked (void) const |
int | remove (void) |
Explicitly remove the lock. | |
void | dump (void) const |
Dump the state of an object. | |
Protected Member Functions | |
ACE_Guard (ACE_LOCK *lock) | |
Helper, meant for subclass only. | |
Protected Attributes | |
ACE_LOCK * | lock_ |
Pointer to the ACE_LOCK we're guarding. | |
int | owner_ |
Keeps track of whether we acquired the lock or failed. | |
Private Member Functions | |
void | operator= (const ACE_Guard< ACE_LOCK > &) |
ACE_Guard (const ACE_Guard< ACE_LOCK > &) |
The class given as an actual parameter must provide at the very least the , , , and methods.
Definition at line 42 of file Guard_T.h.
|
Definition at line 34 of file Guard_T.inl. References ACE_Guard< ACE_LOCK >::acquire().
|
|
Implicitly and automatically acquire (or try to acquire) the lock. If block is non-0 then the , else it. Definition at line 42 of file Guard_T.inl. References ACE_Guard< ACE_LOCK >::acquire(), and ACE_Guard< ACE_LOCK >::tryacquire().
00043 : lock_ (&l), 00044 owner_ (0) 00045 { 00046 if (block) 00047 this->acquire (); 00048 else 00049 this->tryacquire (); 00050 } |
|
Initialise the guard without implicitly acquiring the lock. The parameter indicates whether the guard should release the lock implicitly on destruction. The parameter is ignored and is used here to disambiguate with the preceding constructor. Definition at line 53 of file Guard_T.inl.
|
|
Implicitly release the lock.
Definition at line 64 of file Guard_T.inl. References ACE_Guard< ACE_LOCK >::release().
00065 { 00066 this->release (); 00067 } |
|
Helper, meant for subclass only.
Definition at line 96 of file Guard_T.h.
00096 : lock_ (lock) {} |
|
|
|
Explicitly acquire the lock.
Reimplemented in ACE_Write_Guard< ACE_LOCK >, and ACE_Read_Guard< ACE_LOCK >. Definition at line 10 of file Guard_T.inl. Referenced by ACE_Guard< ACE_LOCK >::ACE_Guard().
|
|
Relinquish ownership of the lock so that it is not released implicitly in the destructor. Definition at line 82 of file Guard_T.inl.
00083 { 00084 this->owner_ = -1; 00085 } |
|
Dump the state of an object.
Reimplemented in ACE_Write_Guard< ACE_LOCK >, and ACE_Read_Guard< ACE_LOCK >. Definition at line 27 of file Guard_T.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_LIB_TEXT, and LM_DEBUG. Referenced by ACE_Read_Guard< ACE_LOCK >::dump(), and ACE_Write_Guard< ACE_LOCK >::dump().
00028 { 00029 #if defined (ACE_HAS_DUMP) 00030 // ACE_TRACE ("ACE_Guard<ACE_LOCK>::dump"); 00031 00032 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); 00033 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("mutex_ = %x\n"), this->lock_)); 00034 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("owner_ = %d\n"), this->owner_)); 00035 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); 00036 #endif /* ACE_HAS_DUMP */ 00037 } |
|
1 if locked, 0 if couldn't acquire the lock (errno will contain the reason for this). Definition at line 70 of file Guard_T.inl.
00071 { 00072 return this->owner_ != -1; 00073 } |
|
|
|
Explicitly release the lock, but only if it is held!
Definition at line 22 of file Guard_T.inl. Referenced by ACE_Guard< ACE_LOCK >::~ACE_Guard().
|
|
Explicitly remove the lock.
Definition at line 76 of file Guard_T.inl.
00077 { 00078 return this->lock_->remove (); 00079 } |
|
Conditionally acquire the lock (i.e., won't block).
Reimplemented in ACE_Write_Guard< ACE_LOCK >, and ACE_Read_Guard< ACE_LOCK >. Definition at line 16 of file Guard_T.inl. Referenced by ACE_Guard< ACE_LOCK >::ACE_Guard().
|
|
Pointer to the ACE_LOCK we're guarding.
|
|
Keeps track of whether we acquired the lock or failed.
|