casacore
Loading...
Searching...
No Matches
SSMDirColumn.h
Go to the documentation of this file.
1//# SSMDirColumn.h: A Column for Direct Arrays in the Standard Storage Manager
2//# Copyright (C) 2000
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_SSMDIRCOLUMN_H
27#define TABLES_SSMDIRCOLUMN_H
28
29
30//# Includes
31#include <casacore/casa/aips.h>
32#include <casacore/tables/DataMan/SSMColumn.h>
33
34namespace casacore { //# NAMESPACE CASACORE - BEGIN
35
36//# Forward declarations
37
38
39// <summary>
40// A Direct Array Column in the Standard Storage Manager.
41// </summary>
42
43// <use visibility=local>
44
45// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="tStandardStMan.cc">
46// </reviewed>
47
48// <prerequisite>
49//# Classes you should understand before using this one.
50// <li> <linkto class=SSMBase>SSMBase</linkto>
51// <li> <linkto class=SSMColumn>SSMColumn</linkto>
52// <li> <linkto class=SSMStringHandler>SSMStringHandler</linkto>
53// </prerequisite>
54
55// <etymology>
56// SSMDirColumn represents a Direct Array Column in the
57// Standard Storage Manager.
58// </etymology>
59
60// <synopsis>
61// SSMDirColumn handles the access to a column containing direct
62// arrays of the various data types.
63// <br>
64// It is derived from <linkto class=SSMColumn>SSMColumn</linkto>
65// and uses most of its functions. The only thing done differently
66// in this class is that it maintains no cache.
67// Furthermore fixed length strings are not handled specially.
68// All string arrays are stored in the special string buckets.
69// </synopsis>
70
71//# <todo asof="$DATE:$">
72//# A List of bugs, limitations, extensions or planned refinements.
73//# </todo>
74
75
76class SSMDirColumn : public SSMColumn
77{
78public:
79 // Create a SSMDirColumn object with the given parent.
80 // It initializes the various variables.
81 // It keeps the pointer to its parent (but does not own it).
82 SSMDirColumn (SSMBase* aParent, int aDataType, uInt aColNr);
83
84 virtual ~SSMDirColumn();
85
86 // Forbid copy constructor.
87 SSMDirColumn (const SSMDirColumn&) = delete;
88
89 // Forbid assignment.
91
92 // An array of 'fixed length' strings is not handled specially,
93 // thus this function is ignored.
94 // It is needed to override the bahviour of the base class.
95 virtual void setMaxLength (uInt maxLength);
96
97 // Get an array value in the given row.
98 virtual void getArrayV (rownr_t rownr, ArrayBase& dataPtr);
99
100 // Put an array value in the given row.
101 virtual void putArrayV (rownr_t rownr, const ArrayBase& dataPtr);
102
103 // Remove the given row from the data bucket and possibly string bucket.
104 virtual void deleteRow (rownr_t aRowNr);
105
106
107protected:
108 // Read the array data for the given row into the data buffer.
109 void getValue (rownr_t aRowNr, void* data);
110};
111
112
113
114} //# NAMESPACE CASACORE - END
115
116#endif
Non-templated base class for templated Array class.
Definition ArrayBase.h:71
SSMDirColumn(SSMBase *aParent, int aDataType, uInt aColNr)
Create a SSMDirColumn object with the given parent.
SSMDirColumn(const SSMDirColumn &)=delete
Forbid copy constructor.
virtual void getArrayV(rownr_t rownr, ArrayBase &dataPtr)
Get an array value in the given row.
virtual void putArrayV(rownr_t rownr, const ArrayBase &dataPtr)
Put an array value in the given row.
void getValue(rownr_t aRowNr, void *data)
Read the array data for the given row into the data buffer.
virtual void setMaxLength(uInt maxLength)
An array of 'fixed length' strings is not handled specially, thus this function is ignored.
SSMDirColumn & operator=(const SSMDirColumn &)=delete
Forbid assignment.
virtual void deleteRow(rownr_t aRowNr)
Remove the given row from the data bucket and possibly string bucket.
this file contains all the compiler specific defines
Definition mainpage.dox:28
unsigned int uInt
Definition aipstype.h:49
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44