28 #ifndef TABLES_EXTERNALLOCKSYNC_H
29 #define TABLES_EXTERNALLOCKSYNC_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/tables/Tables/TableLockData.h>
35 #include <casacore/tables/Tables/TableSyncData.h>
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.
void release(rownr_t nrrow)
Release the lock and synchronize the table access.
Bool acquire(FileLocker::LockType=FileLocker::Write, uInt nattempts=0)
Acquire a read or write lock (when needed).
static MemoryIO * releaseCallBack(void *lockSyncObject, Bool always)
The callback function when releasing a lock.
MemoryIO * doReleaseCallBack(Bool always)
The member function executing the callback functionality.
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.
rownr_t nrow() const
Get the current number of rows in this object.
ExternalLockSync(const ExternalLockSync &that)
Copy constructor is forbidden.
ExternalLockSync & operator=(const ExternalLockSync &that)
Assignment is forbidden.
ExternalLockSync(const TableLock &lockOptions)
Construct from the given TableLock object.
LockType
Define the possible lock types.
@ Write
Acquire a write lock.
String: the storage and methods of handling collections of characters.
void release(Bool always=False)
Release the lock.
Bool hasLock(FileLocker::LockType) const
Has this process the read or write lock, thus can the table be read or written safely?
void write(rownr_t nrrow, uInt nrcolumn, Bool tableChanged, const Block< Bool > &dataManChanged)
Update the synchronization data and write it into the MemoryIO object.
MemoryIO & memoryIO()
Get the MemoryIO object.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.