28 #ifndef TABLES_ISMBASE_H
29 #define TABLES_ISMBASE_H
231 uInt &offendingBucketStartRow,
232 uInt &offendingBucketNrow,
233 uInt &offendingBucketNr,
235 uInt &offendingIndex,
237 uInt &offendingPrevRow);
306 const String& dataTypeID);
310 const String& dataTypeID);
314 const String& dataTypeID);
File object for BucketCache.
Bool dataChanged_p
Has the data changed since the last flush?
virtual void deleteManager()
The data manager will be deleted (because all its columns are requested to be deleted).
virtual void removeColumn(DataManagerColumn *)
Remove a column from the data file and the colSet_p.
void showBucketLayout(ostream &os)
Show the layout of the buckets.
virtual Bool hasMultiFileSupport() const
The data manager supports use of MultiFile.
uInt persCacheSize_p
The persistent cache size.
Cache for buckets in a part of a file.
uInt nrrow_p
The number of rows in the columns.
void makeIndex()
Construct the index object (if not constructed yet) and read it.
static DataManager * makeObject(const String &dataManagerType, const Record &spec)
Make the object from the type name string.
uInt cacheSize() const
Get the current cache size (in buckets).
void makeCache()
Construct the cache object (if not constructed yet).
AipsIO is the object persistency mechanism of Casacore.
virtual void resync(uInt nrrow)
Resync the storage manager with the new file contents.
The Index of the Incremental Storage Manager.
uInt version_p
The version of the class.
Abstract base class for a column in a data manager.
virtual Bool canRemoveRow() const
Can the storage manager delete rows? (yes)
ISMBucket * getBucket(uInt rownr, uInt &bucketStartRow, uInt &bucketNrrow)
Get the bucket containing the given row.
ISMIndex * index_p
The ISM bucket index.
uInt bucketSize_p
The bucket size.
virtual Bool canAddColumn() const
Can the storage manager add columns? (not yet)
uInt nFreeBucket_p
The nr of free buckets.
Bool checkBucketLayout(uInt &offendingCursor, uInt &offendingBucketStartRow, uInt &offendingBucketNrow, uInt &offendingBucketNr, uInt &offendingCol, uInt &offendingIndex, uInt &offendingRow, uInt &offendingPrevRow)
Check that there are no repeated rowIds in the buckets comprising this ISM.
void readIndex()
Read the index (at the end of the file).
void recreate()
(Re)create the index, file, and cache object.
virtual void addRow(uInt nrrow)
Add rows to the storage manager.
void writeIndex()
Write the index (at the end of the file).
Bool checkBucketSize_p
Check a positive bucketsize?
uInt version() const
Get the version of the class.
virtual String dataManagerType() const
Get the type name of the data manager (i.e.
ABSTRACT CLASSES Abstract class for colors Any implementation of color should be able to provide a hexadecimal form of the if a human readable name(i.e."black").In many places throughout the plotter
void init()
Let the storage manager initialize itself.
virtual String dataManagerName() const
Get the name given to the storage manager (in the constructor).
virtual void reopenRW()
Reopen the storage manager files for read/write.
Base class of the Incremental Storage Manager.
uInt nbucketInit_p
The initial number of buckets in the cache.
StManArrayFile * openArrayFile(ByteIO::OpenOption opt)
Open (if needed) the file for indirect arrays with the given mode.
ISMIndex & getIndex()
Get the index object.
ISMBase & operator=(const ISMBase &that)
Assignment cannot be used.
virtual void showCacheStatistics(ostream &os) const
Show the statistics of all caches used.
void setBucketDirty()
Make the current bucket in the cache dirty (i.e.
void showIndexStatistics(ostream &os)
Show the index statistics.
uInt nrow() const
Get the number of rows in this storage manager.
uInt uIntSize_p
The size of a uInt in external format (local or canonical).
virtual DataManagerColumn * makeDirArrColumn(const String &name, int dataType, const String &dataTypeID)
Create a direct array column.
char * tempBuffer() const
Get access to the temporary buffer.
String dataManName_p
Name of data manager.
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
virtual Bool canAddRow() const
Can the storage manager add rows? (yes)
virtual DataManagerColumn * makeIndArrColumn(const String &name, int dataType, const String &dataTypeID)
Create an indirect array column.
char * tempBuffer_p
A temporary read/write buffer (also for other classes).
ISMColumn & getColumn(uInt colnr)
Get access to the given column.
A drop-in replacement for Block<T*>.
A Column in the Incremental Storage Manager.
virtual void setProperties(const Record &spec)
Modify data manager properties.
virtual DataManagerColumn * makeScalarColumn(const String &name, int dataType, const String &dataTypeID)
Create a column in the storage manager on behalf of a table column.
void setCacheSize(uInt cacheSize, Bool canExceedNrBuckets)
Set the cache size (in buckets).
A bucket in the Incremental Storage Manager.
OpenOption
Define the possible ByteIO open options.
uInt uniqnr_p
Unique nr for column in this storage manager.
PtrBlock< ISMColumn * > colSet_p
The assembly of all columns.
virtual void removeRow(uInt rownr)
Delete a row from all columns.
Abstract base class for a data manager.
BucketCache & getCache()
Get the cache object.
uInt cacheSize_p
The actual cache size.
virtual DataManager * clone() const
Clone this object.
StManArrayFile * iosfile_p
The file containing the indirect arrays.
void addBucket(uInt rownr, ISMBucket *bucket)
Add a bucket to the storage manager (i.e.
String: the storage and methods of handling collections of characters.
BucketFile * file_p
The file containing all data.
uInt uniqueNr()
Get a unique column number for the column (it is only unique for this storage manager).
virtual Record dataManagerSpec() const
Record a record containing data manager specifications.
virtual Bool canRemoveColumn() const
Can the storage manager delete columns? (not yet)
uInt uIntSize() const
Get the size of a uInt in external format (can be canonical or local).
virtual Record getProperties() const
Get data manager properties that can be modified.
ISMBase(uInt bucketSize=0, Bool checkBucketSize=True, uInt cacheSize=1)
Create an incremental storage manager without a name.
virtual void addColumn(DataManagerColumn *)
Do the final addition of a column.
uInt bucketSize() const
Get the bucket size (in bytes).
BucketCache * cache_p
The cache with the ISM buckets.
Int firstFree_p
The first free bucket.
virtual void create(uInt nrrow)
Let the storage manager create files as needed for a new table.
Read/write array in external format for a storage manager.
void clearCache()
Clear the cache used by this storage manager.
virtual Bool flush(AipsIO &, Bool fsync)
Flush and optionally fsync the data.
ISMBucket * nextBucket(uInt &cursor, uInt &bucketStartRow, uInt &bucketNrrow)
Get the next bucket.
virtual void open(uInt nrrow, AipsIO &)
Open the storage manager file for an existing table, read in the data, and let the ISMColumn objects ...
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.