casacore::MemoryTable Class Reference

Class for a table held in memory. More...

#include <MemoryTable.h>

Inheritance diagram for casacore::MemoryTable:
casacore::BaseTable

List of all members.

Public Member Functions

 MemoryTable (SetupNewTable &, uInt nrrow, Bool initialize)
 Create the table in memory using the definitions in the SetupNewTable object.
virtual ~MemoryTable ()
 The destructor deletes all data.
virtual void reopenRW ()
 Try to reopen the table (the underlying one) for read/write access.
virtual Bool asBigEndian () const
 Is the table stored in big or little endian format? It returns the endian format of the machine.
virtual const StorageOptionstorageOption () const
 Get the storage option used for the table.
virtual Bool isMultiUsed (Bool checkSubTable) const
 Is the table in use (i.e.
virtual const TableLocklockOptions () const
 Get the locking info.
virtual void mergeLock (const TableLock &lockOptions)
 Merge the given lock info with the existing one.
virtual Bool hasLock (FileLocker::LockType) const
 Has this process the read or write lock, thus can the table be read or written safely? It always returns True.
virtual Bool lock (FileLocker::LockType, uInt nattempts)
 Locking the table is a no-op.
virtual void unlock ()
 Unlocking the table is a no-op.
virtual void flush (Bool fsync, Bool recursive)
 Flushing the table is a no-op.
virtual void resync ()
 Resyncing the Table is a no-op.
virtual uInt getModifyCounter () const
 Get the modify counter.
virtual Bool isWritable () const
 Test if the table is opened as writable.
virtual void copy (const String &newName, int tableOption) const
 Copy the table and all its subtables.
virtual void deepCopy (const String &newName, const Record &dataManagerInfo, const StorageOption &, int tableOption, Bool, int endianFormat, Bool noRows) const
virtual void rename (const String &newName, int tableOption)
 Rename the table.
virtual int tableType () const
 Get the table type (Table::Memory).
virtual TableDesc actualTableDesc () const
 Get the actual table description.
virtual Record dataManagerInfo () const
 Get the data manager info.
virtual TableRecordkeywordSet ()
 Get readonly access to the table keyword set.
virtual TableRecordrwKeywordSet ()
 Get read/write access to the table keyword set.
virtual void flushTableInfo ()
 Write the TableInfo object.
virtual BaseColumngetColumn (uInt columnIndex) const
 Get a column object using its index.
virtual BaseColumngetColumn (const String &columnName) const
 Get a column object using its name.
virtual Bool canAddRow () const
 Test if it is possible to add a row to this table (yes).
virtual void addRow (uInt nrrow=1, Bool initialize=True)
 Add one or more rows and possibly initialize them.
virtual Bool canRemoveRow () const
 Test if it is possible to remove a row from this table (yes).
virtual void removeRow (uInt rownr)
 Remove the given row.
virtual void addColumn (const ColumnDesc &columnDesc, Bool addToParent)
 Add a column to the table.
virtual void addColumn (const ColumnDesc &columnDesc, const String &dataManager, Bool byName, Bool addToParent)
virtual void addColumn (const ColumnDesc &columnDesc, const DataManager &dataManager, Bool addToParent)
virtual void addColumn (const TableDesc &tableDesc, const DataManager &dataManager, Bool addToParent)
virtual Bool canRemoveColumn (const Vector< String > &columnNames) const
 Test if columns can be removed (yes).
virtual void removeColumn (const Vector< String > &columnNames)
 Remove columns.
virtual Bool canRenameColumn (const String &columnName) const
 Test if a column can be renamed (yes).
virtual void renameColumn (const String &newName, const String &oldName)
 Rename a column.
virtual void renameHypercolumn (const String &newName, const String &oldName)
 Rename a hypercolumn.
virtual DataManagerfindDataManager (const String &name, Bool byColumn) const
 Find the data manager with the given name or for the given column.

Private Member Functions

 MemoryTable (const MemoryTable &)
 Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result).
MemoryTableoperator= (const MemoryTable &)
 Assignment is forbidden, because copying a table requires some more knowledge (like table name of result).
void setup (BaseTable *btp)
 Setup the main parts of the object.

Private Attributes

ColumnSetcolSetPtr_p
TableLockDatalockPtr_p

Detailed Description

Class for a table held in memory.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Synopsis

MemoryTable holds all its data in memory. It means that the data is not persistent. However, it can be copied to another table to make the data persistent. Furthermore it is a table as all other tables, so all table functions can be applied to it. Some functions (e.g. lock) won't do anything. Also all table operations like sorting, selecting, and iterating can be used.

The constructor accepts a SetupNewTable object which can contain bindings of columns to any data manager. All bindings to storage managers will be replaced by a binding to the memory based storage manager MemoryStMan . Also all unbound columns will be bound to MemoryStMan. Thus it is still possible that a column is bound to a virtual column engine like CompressComplex .

Definition at line 82 of file MemoryTable.h.


Constructor & Destructor Documentation

casacore::MemoryTable::MemoryTable ( SetupNewTable ,
uInt  nrrow,
Bool  initialize 
)

Create the table in memory using the definitions in the SetupNewTable object.

virtual casacore::MemoryTable::~MemoryTable (  )  [virtual]

The destructor deletes all data.

casacore::MemoryTable::MemoryTable ( const MemoryTable  )  [private]

Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result).

Declaring it private, makes it unusable.


Member Function Documentation

virtual TableDesc casacore::MemoryTable::actualTableDesc (  )  const [virtual]

Get the actual table description.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::addColumn ( const TableDesc tableDesc,
const DataManager dataManager,
Bool  addToParent 
) [virtual]

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::addColumn ( const ColumnDesc columnDesc,
const DataManager dataManager,
Bool  addToParent 
) [virtual]

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::addColumn ( const ColumnDesc columnDesc,
const String dataManager,
Bool  byName,
Bool  addToParent 
) [virtual]

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::addColumn ( const ColumnDesc columnDesc,
Bool  addToParent 
) [virtual]

Add a column to the table.

If the DataManager is not a virtual engine, MemoryStMan will be used. The last Bool argument is not used in MemoryTable, but can be used in other classes derived from BaseTable.

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::addRow ( uInt  nrrow = 1,
Bool  initialize = True 
) [virtual]

Add one or more rows and possibly initialize them.

This will fail for tables not supporting addition of rows.

Reimplemented from casacore::BaseTable.

virtual Bool casacore::MemoryTable::asBigEndian (  )  const [virtual]

Is the table stored in big or little endian format? It returns the endian format of the machine.

Implements casacore::BaseTable.

virtual Bool casacore::MemoryTable::canAddRow (  )  const [virtual]

Test if it is possible to add a row to this table (yes).

Reimplemented from casacore::BaseTable.

virtual Bool casacore::MemoryTable::canRemoveColumn ( const Vector< String > &  columnNames  )  const [virtual]

Test if columns can be removed (yes).

Implements casacore::BaseTable.

virtual Bool casacore::MemoryTable::canRemoveRow (  )  const [virtual]

Test if it is possible to remove a row from this table (yes).

Reimplemented from casacore::BaseTable.

virtual Bool casacore::MemoryTable::canRenameColumn ( const String columnName  )  const [virtual]

Test if a column can be renamed (yes).

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::copy ( const String newName,
int  tableOption 
) const [virtual]

Copy the table and all its subtables.

It copies the contents of each row to get a real copy.

Reimplemented from casacore::BaseTable.

virtual Record casacore::MemoryTable::dataManagerInfo (  )  const [virtual]

Get the data manager info.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::deepCopy ( const String newName,
const Record dataManagerInfo,
const StorageOption ,
int  tableOption,
Bool  ,
int  endianFormat,
Bool  noRows 
) const [virtual]

Reimplemented from casacore::BaseTable.

virtual DataManager* casacore::MemoryTable::findDataManager ( const String name,
Bool  byColumn 
) const [virtual]

Find the data manager with the given name or for the given column.

There is only one storage manager (MemoryStMan) with name MSM.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::flush ( Bool  fsync,
Bool  recursive 
) [virtual]

Flushing the table is a no-op.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::flushTableInfo (  )  [virtual]

Write the TableInfo object.

It does not do anything.

Reimplemented from casacore::BaseTable.

virtual BaseColumn* casacore::MemoryTable::getColumn ( const String columnName  )  const [virtual]

Get a column object using its name.

Implements casacore::BaseTable.

virtual BaseColumn* casacore::MemoryTable::getColumn ( uInt  columnIndex  )  const [virtual]

Get a column object using its index.

Implements casacore::BaseTable.

virtual uInt casacore::MemoryTable::getModifyCounter (  )  const [virtual]

Get the modify counter.

It always returns 0.

Implements casacore::BaseTable.

virtual Bool casacore::MemoryTable::hasLock ( FileLocker::LockType   )  const [virtual]

Has this process the read or write lock, thus can the table be read or written safely? It always returns True.

Implements casacore::BaseTable.

virtual Bool casacore::MemoryTable::isMultiUsed ( Bool  checkSubTable  )  const [virtual]

Is the table in use (i.e.

open) in another process? It always returns False.

Implements casacore::BaseTable.

virtual Bool casacore::MemoryTable::isWritable (  )  const [virtual]

Test if the table is opened as writable.

It always returns True.

Implements casacore::BaseTable.

virtual TableRecord& casacore::MemoryTable::keywordSet (  )  [virtual]

Get readonly access to the table keyword set.

Implements casacore::BaseTable.

virtual Bool casacore::MemoryTable::lock ( FileLocker::LockType  ,
uInt  nattempts 
) [virtual]

Locking the table is a no-op.

Implements casacore::BaseTable.

virtual const TableLock& casacore::MemoryTable::lockOptions (  )  const [virtual]

Get the locking info.

It returns PermanentLocking.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::mergeLock ( const TableLock lockOptions  )  [virtual]

Merge the given lock info with the existing one.

It does nothing.

Implements casacore::BaseTable.

MemoryTable& casacore::MemoryTable::operator= ( const MemoryTable  )  [private]

Assignment is forbidden, because copying a table requires some more knowledge (like table name of result).

Declaring it private, makes it unusable.

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::removeColumn ( const Vector< String > &  columnNames  )  [virtual]

Remove columns.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::removeRow ( uInt  rownr  )  [virtual]

Remove the given row.

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::rename ( const String newName,
int  tableOption 
) [virtual]

Rename the table.

The tableOption is ignored.

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::renameColumn ( const String newName,
const String oldName 
) [virtual]

Rename a column.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::renameHypercolumn ( const String newName,
const String oldName 
) [virtual]

Rename a hypercolumn.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::reopenRW (  )  [virtual]

Try to reopen the table (the underlying one) for read/write access.

It does nothing.

Implements casacore::BaseTable.

virtual void casacore::MemoryTable::resync (  )  [virtual]

Resyncing the Table is a no-op.

Implements casacore::BaseTable.

virtual TableRecord& casacore::MemoryTable::rwKeywordSet (  )  [virtual]

Get read/write access to the table keyword set.

Implements casacore::BaseTable.

void casacore::MemoryTable::setup ( BaseTable btp  )  [private]

Setup the main parts of the object.


Create the initial name map from the table description. This map maps a name to the name in the original table. A rename might change the map.
Create the RefColumn objects.
Create the initial TableInfo as a copy of the original BaseTable.

virtual const StorageOption& casacore::MemoryTable::storageOption (  )  const [virtual]

Get the storage option used for the table.

Implements casacore::BaseTable.

virtual int casacore::MemoryTable::tableType (  )  const [virtual]

Get the table type (Table::Memory).

Reimplemented from casacore::BaseTable.

virtual void casacore::MemoryTable::unlock (  )  [virtual]

Unlocking the table is a no-op.

Implements casacore::BaseTable.


Member Data Documentation

Definition at line 228 of file MemoryTable.h.

Definition at line 229 of file MemoryTable.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1