casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::TableSyncData Class Reference

Class to hold table synchronization data. More...

#include <TableSyncData.h>

Public Member Functions

 TableSyncData ()
 
 ~TableSyncData ()
 
void write (uInt nrrow, uInt nrcolumn, Bool tableChanged, const Block< Bool > &dataManChanged)
 Update the synchronization data and write it into the MemoryIO object. More...
 
void write (uInt nrrow)
 Update the synchronization data and write it into the MemoryIO object. More...
 
Bool read (uInt &nrrow, uInt &nrcolumn, Bool &tableChanged, Block< Bool > &dataManChanged)
 Read the synchronization data from the MemoryIO object. More...
 
MemoryIOmemoryIO ()
 Get the MemoryIO object. More...
 
uInt getModifyCounter () const
 Get the modify counter. More...
 

Private Member Functions

 TableSyncData (const TableSyncData &that)
 Copy constructor is forbidden. More...
 
TableSyncDataoperator= (const TableSyncData &that)
 Assignment is forbidden. More...
 

Private Attributes

uInt itsNrrow
 
Int itsNrcolumn
 
uInt itsModifyCounter
 
uInt itsTableChangeCounter
 
Block< uIntitsDataManChangeCounter
 
MemoryIO itsMemIO
 
AipsIO itsAipsIO
 

Detailed Description

Class to hold table synchronization data.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tTable

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:

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.

Definition at line 78 of file TableSyncData.h.

Constructor & Destructor Documentation

casacore::TableSyncData::TableSyncData ( )
casacore::TableSyncData::~TableSyncData ( )
casacore::TableSyncData::TableSyncData ( const TableSyncData that)
private

Copy constructor is forbidden.

Member Function Documentation

uInt casacore::TableSyncData::getModifyCounter ( ) const
inline

Get the modify counter.

Definition at line 136 of file TableSyncData.h.

References itsModifyCounter.

MemoryIO & casacore::TableSyncData::memoryIO ( )
inline

Get the MemoryIO object.

This is used to let LockFile read or write the synchronization data into it.

Definition at line 132 of file TableSyncData.h.

References itsMemIO.

Referenced by casacore::ExternalLockSync::doReleaseCallBack().

TableSyncData& casacore::TableSyncData::operator= ( const TableSyncData that)
private

Assignment is forbidden.

Bool casacore::TableSyncData::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.

void casacore::TableSyncData::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.

Referenced by casacore::ExternalLockSync::doReleaseCallBack().

void casacore::TableSyncData::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.

Member Data Documentation

AipsIO casacore::TableSyncData::itsAipsIO
private

Definition at line 127 of file TableSyncData.h.

Block<uInt> casacore::TableSyncData::itsDataManChangeCounter
private

Definition at line 125 of file TableSyncData.h.

MemoryIO casacore::TableSyncData::itsMemIO
private

Definition at line 126 of file TableSyncData.h.

Referenced by memoryIO().

uInt casacore::TableSyncData::itsModifyCounter
private

Definition at line 123 of file TableSyncData.h.

Referenced by getModifyCounter().

Int casacore::TableSyncData::itsNrcolumn
private

Definition at line 122 of file TableSyncData.h.

uInt casacore::TableSyncData::itsNrrow
private

Definition at line 121 of file TableSyncData.h.

uInt casacore::TableSyncData::itsTableChangeCounter
private

Definition at line 124 of file TableSyncData.h.


The documentation for this class was generated from the following file: