|
casacore
|
#include <ExternalLockSync.h>
Public Member Functions | |
| ExternalLockSync (const TableLock &lockOptions) | |
| Construct from the given TableLock object. | |
| ~ExternalLockSync () | |
| ExternalLockSync (const ExternalLockSync &that)=delete | |
| Copy constructor is forbidden. | |
| ExternalLockSync & | operator= (const ExternalLockSync &that)=delete |
| Assignment is forbidden. | |
| void | makeLock (const String &tableName, Bool create, FileLocker::LockType) |
| Create the LockFile object and acquire a read or write lock when permanent locking is in effect. | |
| Bool | acquire (FileLocker::LockType=FileLocker::Write, uInt nattempts=0) |
| Acquire a read or write lock (when needed). | |
| rownr_t | nrow () const |
| Get the current number of rows in this object. | |
| void | release (rownr_t nrrow) |
| Release the lock and synchronize the table access. | |
| Bool | hasLock (FileLocker::LockType) const |
| Check if the table has a read or write lock, thus if the table can be read or written safely. | |
Private Member Functions | |
| MemoryIO * | doReleaseCallBack (Bool always) |
| The member function executing the callback functionality. | |
Static Private Member Functions | |
| static MemoryIO * | releaseCallBack (void *lockSyncObject, Bool always) |
| The callback function when releasing a lock. | |
Private Attributes | |
| TableLockData | itsLock |
| TableSyncData | itsSync |
| rownr_t | itsNrrow |
Class to hold table lock data.
Internal
This class keeps the LockFile object used to do the actual locking/unlocking. It also keeps the synchronization information.
Encapsulate Table locking data.
Definition at line 62 of file ExternalLockSync.h.
| casacore::ExternalLockSync::ExternalLockSync | ( | const TableLock & | lockOptions | ) |
Construct from the given TableLock object.
Referenced by ExternalLockSync(), and operator=().
| casacore::ExternalLockSync::~ExternalLockSync | ( | ) |
|
delete |
Copy constructor is forbidden.
References ExternalLockSync().
| Bool casacore::ExternalLockSync::acquire | ( | FileLocker::LockType | = FileLocker::Write, |
| uInt | nattempts = 0 ) |
Acquire a read or write lock (when needed).
Nattempts==0 indicates that it has to wait until the lock is acquired. Nattempts>0 indicates that it gives up acquiring the lock when nattempts have been done (with 1 second intervals). It throws an exception when acquire failed while it had to wait. It returns a false status when acquiring the lock failed while it does not have to wait.
When a lock is successfully acquired, the number of rows (see function nrrow() below) is reset as a result of synchronizing the access to the table.
References casacore::FileLocker::Write.
The member function executing the callback functionality.
Definition at line 132 of file ExternalLockSync.h.
|
inline |
Check if the table has a read or write lock, thus if the table can be read or written safely.
Definition at line 123 of file ExternalLockSync.h.
References itsLock.
| void casacore::ExternalLockSync::makeLock | ( | const String & | tableName, |
| Bool | create, | ||
| FileLocker::LockType | ) |
Create the LockFile object and acquire a read or write lock when permanent locking is in effect.
It throws an exception when acquiring the lock failed.
|
inline |
Get the current number of rows in this object.
Definition at line 137 of file ExternalLockSync.h.
References itsNrrow.
|
delete |
Assignment is forbidden.
References ExternalLockSync().
|
inline |
Release the lock and synchronize the table access.
When autolocking is in effect, the lock is only released when the inspection-interval (see class TableLockData) has expired. It does nothing when permanent locking is used. It throws an exception when the release failed.
Definition at line 127 of file ExternalLockSync.h.
|
staticprivate |
The callback function when releasing a lock.
|
private |
Definition at line 117 of file ExternalLockSync.h.
|
private |
Definition at line 119 of file ExternalLockSync.h.
Referenced by doReleaseCallBack(), nrow(), and release().
|
private |
Definition at line 118 of file ExternalLockSync.h.
Referenced by doReleaseCallBack().