Kea 2.7.6
|
Interprocess Sync Class. More...
#include <interprocess_sync.h>
Public Member Functions | |
InterprocessSync (const std::string &task_name) | |
Constructor. | |
virtual | ~InterprocessSync () |
Destructor. | |
Protected Member Functions | |
virtual bool | lock ()=0 |
Acquire the lock (blocks if something else has acquired a lock on the same task name) | |
virtual bool | tryLock ()=0 |
Try to acquire a lock (doesn't block) | |
virtual bool | unlock ()=0 |
Release the lock. | |
Protected Attributes | |
bool | is_locked_ |
Is the lock taken? | |
const std::string | task_name_ |
The task name. | |
Friends | |
class | InterprocessSyncLocker |
Interprocess Sync Class.
This class specifies an interface for mutual exclusion among co-operating processes. This is an abstract class and a real implementation such as InterprocessSyncFile should be used in code. Usage is as follows:
NOTE: All implementations of InterprocessSync should keep the is_locked_ member variable updated whenever their lock()/tryLock()/unlock() implementations are called.
Definition at line 38 of file interprocess_sync.h.
|
inline |
Constructor.
Creates an interprocess synchronization object
task_name | Name of the synchronization task. This has to be identical among the various processes that need to be synchronized for the same task. |
Definition at line 52 of file interprocess_sync.h.
|
inlinevirtual |
Destructor.
Definition at line 57 of file interprocess_sync.h.
|
protectedpure virtual |
Acquire the lock (blocks if something else has acquired a lock on the same task name)
Implemented in isc::log::interprocess::InterprocessSyncFile, and isc::log::interprocess::InterprocessSyncNull.
Referenced by isc::log::interprocess::InterprocessSyncLocker::lock().
|
protectedpure virtual |
Try to acquire a lock (doesn't block)
Implemented in isc::log::interprocess::InterprocessSyncFile, and isc::log::interprocess::InterprocessSyncNull.
Referenced by isc::log::interprocess::InterprocessSyncLocker::tryLock().
|
protectedpure virtual |
Release the lock.
Implemented in isc::log::interprocess::InterprocessSyncFile, and isc::log::interprocess::InterprocessSyncNull.
Referenced by isc::log::interprocess::InterprocessSyncLocker::unlock().
|
friend |
Definition at line 42 of file interprocess_sync.h.
|
protected |
Is the lock taken?
Definition at line 77 of file interprocess_sync.h.
Referenced by isc::log::interprocess::InterprocessSyncLocker::isLocked(), isc::log::interprocess::InterprocessSyncFile::lock(), isc::log::interprocess::InterprocessSyncNull::lock(), isc::log::interprocess::InterprocessSyncFile::tryLock(), isc::log::interprocess::InterprocessSyncNull::tryLock(), isc::log::interprocess::InterprocessSyncFile::unlock(), and isc::log::interprocess::InterprocessSyncNull::unlock().
|
protected |
The task name.
Definition at line 76 of file interprocess_sync.h.