casacore
Loading...
Searching...
No Matches
StManColumnBase.h
Go to the documentation of this file.
1// # StManColumnBase.h: Base storage manager column class
2// # Copyright (C) 2019
3// # Associated Universities, Inc. Washington DC, USA.
4// #
5// # This library is free software; you can redistribute it and/or modify it
6// # under the terms of the GNU Library General Public License as published by
7// # the Free Software Foundation; either version 2 of the License, or (at your
8// # option) any later version.
9// #
10// # This library is distributed in the hope that it will be useful, but WITHOUT
11// # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12// # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13// # License for more details.
14// #
15// # You should have received a copy of the GNU Library General Public License
16// # along with this library; if not, write to the Free Software Foundation,
17// # Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18// #
19// # Correspondence concerning AIPS++ should be addressed as follows:
20// # Internet email: casa-feedback@nrao.edu.
21// # Postal address: AIPS++ Project Office
22// # National Radio Astronomy Observatory
23// # 520 Edgemont Road
24// # Charlottesville, VA 22903-2475 USA
25
26#ifndef TABLES_STMANCOLUMNBASE_H
27#define TABLES_STMANCOLUMNBASE_H
28
29// # Includes
30#include <casacore/casa/aips.h>
31#include <casacore/tables/DataMan/DataManagerColumn.h>
32#include <casacore/casa/Arrays/ArrayFwd.h>
33#include <casacore/casa/Utilities/DataType.h>
34
35namespace casacore { // # NAMESPACE CASACORE - BEGIN
36
37// <summary>
38// Base table column storage manager class
39// </summary>
40
41// <use visibility=local>
42
43// <reviewed reviewer="Gareth Hunt" date="94Nov17" tests="">
44// </reviewed>
45
46// <prerequisite>
47// # Classes you should understand before using this one.
48// <li> DataManagerColumn
49// </prerequisite>
50
51// <etymology>
52// StManColumnBase is the base class for a storage manager.
53// </etymology>
54
55// <synopsis>
56// StManColumnBase is the abstract base class to handle a column in all
57// kind of storage managers. It is derived from DataManagerColumn
58// and implements a few (virtual) functions handling the column's
59// data type for derived storage manager column classes.
60// </synopsis>
61
62// <todo asof="$DATE:$">
63// # A List of bugs, limitations, extensions or planned refinements.
64// </todo>
65
67 public:
68 // Default constructor.
70
72
73 // The object cannot be copied.
75
76 // The object cannot be assigned to.
78
79 // Test if the given data type is supported by storage managers.
80 // It is used by the function Table::isNativeDataType.
82
83 // Return the data type of the column.
84 // <group>
85 virtual int dataType() const;
86 DataType dtype() const { return dtype_p; }
87 // </group>
88
89 // Return the size of an element of the column's data type.
90 Int elemSize() const { return elemSize_p; }
91
92 private:
93 // The data type of the column.
94 DataType dtype_p;
95 // The size of an element of this data type.
97};
98
99} // namespace casacore
100
101#endif
DataManagerColumn()
Create a column.
Int elemSize_p
The size of an element of this data type.
StManColumnBase(const StManColumnBase &)=delete
The object cannot be copied.
virtual int dataType() const
Return the data type of the column.
StManColumnBase(int dataType)
Default constructor.
DataType dtype_p
The data type of the column.
StManColumnBase & operator=(const StManColumnBase &)=delete
The object cannot be assigned to.
Int elemSize() const
Return the size of an element of the column's data type.
static Bool isNativeDataType(int dtype)
Test if the given data type is supported by storage managers.
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition mainpage.dox:28
int Int
Definition aipstype.h:48
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40