- PermanentLocking
- The table is permanently locked. A lock is set at the beginning and only released when the table is closed. A read lock is used when the table is opened for readonly; otherwise a write lock is used. This means that multiple readers are possible. The Table constructor exits with an exception when the lock cannot be acquired.
- PermanentLockingWait
- The same as above, but the table constructor waits until the lock gets available.
- AutoLocking
- The system takes care of acquiring/releasing locks. In principle it keeps the table locked, but from time to time (defined by the inspection interval) it is checked whether another process wants to access the table. If so, the lock is released and probably re-acquired later. This mode is the default mode.
- UserLocking
- The user is taking care of locking the table by means of the Table functions
lock andunlock . In this way transaction processing can be implemented.- AutoNoReadLocking
- The system takes care of acquiring/releasing locks. It is similar to AutoLocking, but no locks are needed for reading.
- UserNoReadLocking
- The user is taking care of locking the table by means of the Table functions
lock andunlock . It is similar to UserLocking, but no locks are needed for reading.- DefaultLocking
- This is the default locking option. It means that AutoLocking will be used if the table is not opened yet. Otherwise the locking options of the PlainTable objec already in use will be used.
It also keeps the LockFile object used to do the actual locking/unlocking.
Copy constructor.
Assignment.
Merge that TableLock with this TableLock object by taking the maximum option and minimum inspection interval. The option order (ascending) is UserLocking, AutoLocking, PermanentLocking. When an interval was defaulted, it is not taken into account. An option DefaultLocking is not taken into account.
Get the locking option.
Is read locking needed?
Is permanent locking used?
Get the inspection interval.
Get the maximum wait period in AutoLocking mode.
Set itsOption and itsReadLocking when needed.