#include <Lock.h>
Inheritance diagram for ACE_Adaptive_Lock:
Public Member Functions | |
virtual | ~ACE_Adaptive_Lock (void) |
virtual int | remove (void) |
virtual int | acquire (void) |
virtual int | tryacquire (void) |
virtual int | release (void) |
Release the lock. Returns -1 on failure. | |
virtual int | acquire_read (void) |
virtual int | acquire_write (void) |
virtual int | tryacquire_read (void) |
virtual int | tryacquire_write (void) |
virtual int | tryacquire_write_upgrade (void) |
void | dump (void) const |
Protected Member Functions | |
ACE_Adaptive_Lock (void) | |
Protected Attributes | |
ACE_Lock * | lock_ |
This class, as ACE_Lock, provide a set of general locking APIs. However, it defers our decision of what kind of lock to use to the run time and delegates all locking operations to the actual lock. Users must define a constructor in their subclass to initialize <lock_>.
Definition at line 123 of file Lock.h.
ACE_Adaptive_Lock::~ACE_Adaptive_Lock | ( | void | ) | [virtual] |
ACE_Adaptive_Lock::ACE_Adaptive_Lock | ( | void | ) | [protected] |
int ACE_Adaptive_Lock::acquire | ( | void | ) | [virtual] |
int ACE_Adaptive_Lock::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>. Returns -1 on failure.
Implements ACE_Lock.
Definition at line 51 of file Lock.cpp.
References ACE_Lock::acquire_read(), and lock_.
00052 { 00053 return this->lock_->acquire_read (); 00054 }
int ACE_Adaptive_Lock::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>. Returns -1 on failure.
Implements ACE_Lock.
Definition at line 57 of file Lock.cpp.
References ACE_Lock::acquire_write(), and lock_.
00058 { 00059 return this->lock_->acquire_write (); 00060 }
void ACE_Adaptive_Lock::dump | ( | void | ) | const |
int ACE_Adaptive_Lock::release | ( | void | ) | [virtual] |
int ACE_Adaptive_Lock::remove | ( | void | ) | [virtual] |
int ACE_Adaptive_Lock::tryacquire | ( | void | ) | [virtual] |
Conditionally acquire the lock (i.e., won't block). Returns -1 on failure. If we "failed" because someone else already had the lock, errno
is set to EBUSY
.
Implements ACE_Lock.
Definition at line 39 of file Lock.cpp.
References lock_, and ACE_Lock::tryacquire().
00040 { 00041 return this->lock_->tryacquire (); 00042 }
int ACE_Adaptive_Lock::tryacquire_read | ( | void | ) | [virtual] |
Conditionally acquire a read lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Returns -1 on failure. If we "failed" because someone else already had the lock, errno
is set to EBUSY
.
Implements ACE_Lock.
Definition at line 63 of file Lock.cpp.
References lock_, and ACE_Lock::tryacquire_read().
00064 { 00065 return this->lock_->tryacquire_read (); 00066 }
int ACE_Adaptive_Lock::tryacquire_write | ( | void | ) | [virtual] |
Conditionally acquire a write lock. If the locking mechanism doesn't support read locks then this just calls <acquire>. Returns -1 on failure. If we "failed" because someone else already had the lock, errno
is set to EBUSY
.
Implements ACE_Lock.
Definition at line 69 of file Lock.cpp.
References lock_, and ACE_Lock::tryacquire_write().
00070 { 00071 return this->lock_->tryacquire_write (); 00072 }
int ACE_Adaptive_Lock::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.
Implements ACE_Lock.
Definition at line 75 of file Lock.cpp.
References lock_, and ACE_Lock::tryacquire_write_upgrade().
00076 { 00077 return this->lock_->tryacquire_write_upgrade (); 00078 }
ACE_Lock* ACE_Adaptive_Lock::lock_ [protected] |
Definition at line 151 of file Lock.h.
Referenced by acquire(), acquire_read(), acquire_write(), release(), remove(), tryacquire(), tryacquire_read(), tryacquire_write(), and tryacquire_write_upgrade().