00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef TABLES_NULLTABLE_H
00029 #define TABLES_NULLTABLE_H
00030
00031
00032
00033 #include <casa/aips.h>
00034 #include <tables/Tables/BaseTable.h>
00035
00036
00037 namespace casa {
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067 class NullTable : public BaseTable
00068 {
00069 public:
00070
00071 NullTable();
00072
00073 virtual ~NullTable();
00074
00075
00076 virtual Bool isNull() const;
00077
00078
00079
00080 virtual void reopenRW();
00081 virtual Bool asBigEndian() const;
00082 virtual Bool isMultiUsed (Bool checkSubTable) const;
00083 virtual const TableLock& lockOptions() const;
00084 virtual void mergeLock (const TableLock& lockOptions);
00085 virtual Bool hasLock (FileLocker::LockType) const;
00086 virtual Bool lock (FileLocker::LockType, uInt nattempts);
00087 virtual void unlock();
00088 virtual void flush (Bool fsync, Bool recursive);
00089 virtual void resync();
00090 virtual uInt getModifyCounter() const;
00091 virtual Bool isWritable() const;
00092 virtual void deepCopy (const String& newName,
00093 const Record& dataManagerInfo,
00094 int tableOption,
00095 Bool valueCopy,
00096 int endianFormat,
00097 Bool noRows) const;
00098 virtual TableDesc actualTableDesc() const;
00099 virtual Record dataManagerInfo() const;
00100 virtual TableRecord& keywordSet();
00101 virtual TableRecord& rwKeywordSet();
00102 virtual BaseColumn* getColumn (uInt columnIndex) const;
00103 virtual BaseColumn* getColumn (const String& columnName) const;
00104 virtual Bool canAddRow() const;
00105 virtual void addRow (uInt nrrow, Bool initialize);
00106 virtual Bool canRemoveRow() const;
00107 virtual void removeRow (uInt rownr);
00108 virtual DataManager* findDataManager (const String& dataManagerName) const;
00109 virtual void addColumn (const ColumnDesc& columnDesc);
00110 virtual void addColumn (const ColumnDesc& columnDesc,
00111 const String& dataManager, Bool byName);
00112 virtual void addColumn (const ColumnDesc& columnDesc,
00113 const DataManager& dataManager);
00114 virtual void addColumn (const TableDesc& tableDesc,
00115 const DataManager& dataManager);
00116 virtual Bool canRemoveColumn (const Vector<String>& columnNames) const;
00117 virtual void removeColumn (const Vector<String>& columnNames);
00118 virtual Bool canRenameColumn (const String& columnName) const;
00119 virtual void renameColumn (const String& newName, const String& oldName);
00120 virtual Vector<uInt> rowNumbers() const;
00121 virtual BaseTable* root();
00122 virtual Bool rowOrder() const;
00123 virtual Vector<uInt>* rowStorage();
00124 virtual Bool adjustRownrs (uInt nrrow, Vector<uInt>& rownrs,
00125 Bool determineOrder) const;
00126 virtual BaseTable* doSort (PtrBlock<BaseColumn*>&,
00127 const PtrBlock<ObjCompareFunc*>&,
00128 const Block<Int>& sortOrder,
00129 int sortOption);
00130 virtual void renameSubTables (const String& newName,
00131 const String& oldName);
00132
00133
00134 private:
00135
00136
00137
00138 NullTable (const NullTable&);
00139
00140
00141
00142
00143 NullTable& operator= (const NullTable&);
00144
00145
00146 void throwError (const String& name) const;
00147 };
00148
00149
00150
00151
00152 }
00153
00154 #endif