TableSyncData.h
Classes
- TableSyncData -- Class to hold table synchronization data. (full description)
Interface
- Public Members
- TableSyncData()
- ~TableSyncData()
- void write (uInt nrrow, uInt nrcolumn, Bool tableChanged, const Block<Bool>& dataManChanged)
- void write (uInt nrrow)
- Bool read (uInt& nrrow, uInt& nrcolumn, Bool& tableChanged, Block<Bool>& dataManChanged)
- MemoryIO& memoryIO()
- uInt getModifyCounter() const
- Private Members
- TableSyncData (const TableSyncData& that)
- TableSyncData& operator= (const TableSyncData& that)
Review Status
- Programs:
- Tests:
Prerequisite
Synopsis
This class keeps counters to synchronize the table data when a table
is locked or unlocked.
A few counters are kept by this class:
- The numbers of rows in the table.
- The number of columns in the table.
- The table change counter.
- A change counter per data manager.
When a lock on the table is acquired, it reads the sync data from the
lock file and determines if anything has changed. If so, the necessary
steps are taken to reread the table data when needed.
When a lock on the table is released, it updates and writes the sync data
which tells if table data have changed.
This class can also be used for the synchronization of tables and
external fillers (see class
ExternalLockSync). For this
purpose it is sufficient to store the number of rows.
Member Description
void write (uInt nrrow, uInt nrcolumn, Bool tableChanged, const Block<Bool>& dataManChanged)
Update the synchronization data and write it into the MemoryIO object.
This function is called when a table flush is done to reflect
if anything has changed compared to the previous flush.
void write (uInt nrrow)
Update the synchronization data and write it into the MemoryIO object.
This function should be used by an external filler when it flushes
its data.
Bool read (uInt& nrrow, uInt& nrcolumn, Bool& tableChanged, Block<Bool>& dataManChanged)
Read the synchronization data from the MemoryIO object.
This function is called when a lock is acquired to see if
table data has to be reread.
It returns False when the MemoryIO object is empty.
Get the MemoryIO object.
This is used to let LockFile read or write the
synchronization data into it.
Get the modify counter.
TableSyncData (const TableSyncData& that)
Copy constructor is forbidden.
TableSyncData& operator= (const TableSyncData& that)
Assignment is forbidden.