casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StManColumn.h
Go to the documentation of this file.
1 //# StManColumn.h: Base storage manager column class
2 //# Copyright (C) 1994,1995,1996,1998,2002
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: aips2-request@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 //# $Id$
27 
28 #ifndef TABLES_STMANCOLUMN_H
29 #define TABLES_STMANCOLUMN_H
30 
31 
32 //# Includes
33 #include <casacore/casa/aips.h>
35 
36 namespace casacore { //# NAMESPACE CASACORE - BEGIN
37 
38 //# Forward Declarations
39 template<class T> class Vector;
40 
41 
42 // <summary>
43 // Base table column storage manager class
44 // </summary>
45 
46 // <use visibility=local>
47 
48 // <reviewed reviewer="Gareth Hunt" date="94Nov17" tests="">
49 // </reviewed>
50 
51 // <prerequisite>
52 //# Classes you should understand before using this one.
53 // <li> DataManagerColumn
54 // </prerequisite>
55 
56 // <etymology>
57 // StManColumn handles a column for a storage manager.
58 // </etymology>
59 
60 // <synopsis>
61 // StManColumn is the abstract base class to handle a column in all
62 // kind of storage managers. It is derived from DataManagerColumn
63 // and implements several virtual functions for derived storage
64 // manager column classes (like StManColumnAipsIO).
65 //
66 // All get and put functions (except for single scalars) in the abstract
67 // base class DataManagerColumn have a generic void* data argument.
68 // This is done to allow arbitrary typed arguments. This can be done
69 // because the data type of the derived class always matches the
70 // type of the data argument.
71 // However, at one time the void* has to be casted to the exact type.
72 // Storage managers only support the standard data types; therefore
73 // it is possible to do the cast in a base class. This concentrates
74 // the burden in one class and allows the derived classes to work
75 // with correctly typed arguments.
76 // The price is an extra virtual function call, but that is not a
77 // problem for (expensive) operations on arrays.
78 // It is not done for single scalars, because that price may be too high.
79 //
80 // See StManColumnAipsIO for the get/put functions required in a storage
81 // manager column class handling scalars.
82 // See StManColumnArrayAipsIO for the get/put functions required in a
83 // storage manager column class handling arrays. This class also
84 // contains the shape functions for direct arrays, while
85 // StManColumnIndArrayAipsIO contains the shape functions for indirec
86 // arrays.
87 //
88 // StManColumn also contains the data type of the column (which it
89 // gets from the derived classes at construction time) and implements
90 // the function dataType on behalf of its derived classes.
91 // </synopsis>
92 
93 // <motivation>
94 // Making life easier for the derived classes.
95 // </motivation>
96 
97 // <todo asof="$DATE:$">
98 //# A List of bugs, limitations, extensions or planned refinements.
99 // </todo>
100 
101 
103 {
104 public:
105 
106  // Default constructor.
107  StManColumn (int dataType);
108 
109  ~StManColumn();
110 
111  // Test if the given data type is supported by storage managers.
112  // It is used by the function Table::isNativeDataType.
113  static Bool isNativeDataType (int dtype);
114 
115  // Return the data type of the column.
116  int dataType() const;
117 
118  // By default the storage manager can handle access to a scalar column.
119  Bool canAccessScalarColumn (Bool& reask) const;
120 
121  // All storage managers can handle access to scalar column cells, because
122  // this class contains a default implementation of getScalarColumnCellsV.
123  Bool canAccessScalarColumnCells (Bool& reask) const;
124 
125  // All storage managers can handle access to array column cells, because
126  // this class contains a default implementation of getArrayColumnCellsV.
127  Bool canAccessArrayColumnCells (Bool& reask) const;
128 
129  // Get all scalar values in the column.
130  // The argument dataPtr is in fact a Vector<T>*, but a void*
131  // is needed to be generic.
132  // The vector pointed to by dataPtr has to have the correct length
133  // (which is guaranteed by the ScalarColumn getColumn function).
134  // The default implementation calls the appropriate getScalarColumnXXV.
135  void getScalarColumnV (void* dataPtr);
136 
137  // Put all scalar values in the column.
138  // The argument dataPtr is in fact a const Vector<T>*, but a const void*
139  // is needed to be generic.
140  // The vector pointed to by dataPtr has to have the correct length
141  // (which is guaranteed by the ScalarColumn putColumn function).
142  // The default implementation calls the appropriate putScalarColumnXXV.
143  void putScalarColumnV (const void* dataPtr);
144 
145  // Get some scalar values in the column.
146  // The argument dataPtr is in fact a Vector<T>*, but a void*
147  // is needed to be generic.
148  // The vector pointed to by dataPtr has to have the correct length
149  // (which is guaranteed by the ScalarColumn getColumn function).
150  // The default implementation calls the appropriate getScalarColumnCellsXXV.
151  void getScalarColumnCellsV (const RefRows& rownrs,
152  void* dataPtr);
153 
154  // Put some scalar values in the column.
155  // The argument dataPtr is in fact a const Vector<T>*, but a const void*
156  // is needed to be generic.
157  // The vector pointed to by dataPtr has to have the correct length
158  // (which is guaranteed by the ScalarColumn getColumn function).
159  // The default implementation calls the appropriate putScalarColumnCellsXXV.
160  void putScalarColumnCellsV (const RefRows& rownrs,
161  const void* dataPtr);
162 
163  // Get scalars from the given row on with a maximum of nrmax values.
164  // It returns the actual number of values got.
165  // This can be used to get an entire column of scalars or to get
166  // a part of a column (for a cache for example).
167  // The argument dataPtr is in fact a T*, but a void*
168  // is needed to be generic.
169  // The default implementation calls the appropriate getBlockXXV function.
170  uInt getBlockV (uInt rownr, uInt nrmax, void* dataPtr);
171 
172  // Put nrmax scalars from the given row on.
173  // It returns the actual number of values put.
174  // This can be used to put an entire column of scalars or to put
175  // a part of a column (for a cache for example).
176  // The argument dataPtr is in fact a const T*, but a const void*
177  // is needed to be generic.
178  // The default implementation calls the appropriate putBlockXXV function.
179  void putBlockV (uInt rownr, uInt nrmax, const void* dataPtr);
180 
181  // Get the array value in the given row.
182  // The argument dataPtr is in fact an Array<T>*, but a void*
183  // is needed to be generic.
184  // The array pointed to by dataPtr has to have the correct shape
185  // (which is guaranteed by the ArrayColumn get function).
186  // The default implementation calls the appropriate getArrayXXV.
187  void getArrayV (uInt rownr, void* dataPtr);
188 
189  // Put the array value into the given row.
190  // The argument dataPtr is in fact a const Array<T>*, but a const void*
191  // is needed to be generic.
192  // The array pointed to by dataPtr has to have the correct shape
193  // (which is guaranteed by the ArrayColumn put function).
194  // The default implementation calls the appropriate putArrayXXV.
195  void putArrayV (uInt rownr, const void* dataPtr);
196 
197  // Get all array values in the column.
198  // The argument dataPtr is in fact an Array<T>*, but a void*
199  // is needed to be generic.
200  // The vector pointed to by dataPtr has to have the correct length
201  // (which is guaranteed by the ArrayColumn getColumn function).
202  // The default implementation calls the appropriate getArrayColumnXXV.
203  void getArrayColumnV (void* dataPtr);
204 
205  // Put all array values in the column.
206  // The argument dataPtr is in fact a const Array<T>*, but a const void*
207  // is needed to be generic.
208  // The vector pointed to by dataPtr has to have the correct length
209  // (which is guaranteed by the ArrayColumn putColumn function).
210  // The default implementation calls the appropriate putArrayColumnXXV.
211  void putArrayColumnV (const void* dataPtr);
212 
213  // Get some array values in the column.
214  // The argument dataPtr is in fact an Array<T>*, but a void*
215  // is needed to be generic.
216  // The vector pointed to by dataPtr has to have the correct length
217  // (which is guaranteed by the ArrayColumn getColumn function).
218  // The default implementation calls the appropriate getArrayColumnCellsXXV.
219  void getArrayColumnCellsV (const RefRows& rownrs, void* dataPtr);
220 
221  // Put some array values in the column.
222  // The argument dataPtr is in fact an const Array<T>*, but a const void*
223  // is needed to be generic.
224  // The vector pointed to by dataPtr has to have the correct length
225  // (which is guaranteed by the ArrayColumn getColumn function).
226  // The default implementation calls the appropriate putArrayColumnCellsXXV.
227  void putArrayColumnCellsV (const RefRows& rownrs, const void* dataPtr);
228 
229  // Get a section of the array in the given row.
230  // The argument dataPtr is in fact an Array<T>*, but a void*
231  // is needed to be generic.
232  // The array pointed to by dataPtr has to have the correct shape
233  // (which is guaranteed by the ArrayColumn getSlice function).
234  // The default implementation calls the appropriate getSliceXXV.
235  void getSliceV (uInt rownr, const Slicer& slicer, void* dataPtr);
236 
237  // Put into a section of the array in the given row.
238  // The argument dataPtr is in fact a const Array<T>*, but a const void*
239  // is needed to be generic.
240  // The array pointed to by dataPtr has to have the correct shape
241  // (which is guaranteed by the ArrayColumn putSlice function).
242  // The default implementation calls the appropriate putSliceXXV.
243  void putSliceV (uInt rownr, const Slicer& slicer, const void* dataPtr);
244 
245  // Get a section of all arrays in the column.
246  // The argument dataPtr is in fact an Array<T>*, but a void*
247  // is needed to be generic.
248  // The array pointed to by dataPtr has to have the correct shape
249  // (which is guaranteed by the ArrayColumn getColumn function).
250  // The default implementation calls the appropriate getColumnSliceXXV.
251  void getColumnSliceV (const Slicer& slicer, void* dataPtr);
252 
253  // Put into a section of all arrays in the column.
254  // The argument dataPtr is in fact a const Array<T>*, but a const void*
255  // is needed to be generic.
256  // The array pointed to by dataPtr has to have the correct shape
257  // (which is guaranteed by the ArrayColumn putColumn function).
258  // The default implementation calls the appropriate putColumnSliceXXV.
259  void putColumnSliceV (const Slicer& slicer, const void* dataPtr);
260 
261  // Get a section of some arrays in the column.
262  // The argument dataPtr is in fact an Array<T>*, but a void*
263  // is needed to be generic.
264  // The array pointed to by dataPtr has to have the correct shape
265  // (which is guaranteed by the ArrayColumn getColumn function).
266  // The default implementation calls the appropriate getColumnSliceCellsXXV.
267  virtual void getColumnSliceCellsV (const RefRows& rownrs,
268  const Slicer& slicer, void* dataPtr);
269 
270  // Put into a section of some arrays in the column.
271  // The argument dataPtr is in fact a const Array<T>*, but a const void*
272  // is needed to be generic.
273  // The array pointed to by dataPtr has to have the correct shape
274  // (which is guaranteed by the ArrayColumn putColumn function).
275  // The default implementation calls the appropriate putColumnSliceCellsXXV.
276  virtual void putColumnSliceCellsV (const RefRows& rownrs,
277  const Slicer& slicer,
278  const void* dataPtr);
279 
280 
281 private:
282  // The object cannot be copied.
283  StManColumn (const StManColumn&);
284 
285  // The object cannot be assigned to.
287 
288  // Throw an "invalid operation" exception for the default
289  // implementation of getArray.
290  void throwInvalidOp(const String &op) const;
291 
292 protected:
293  // Get the scalar values in the entire column.
294  // The buffer pointed to by dataPtr has to have the correct length.
295  // (which is guaranteed by the ScalarColumn getColumn function).
296  // The default implementation uses the corresponding getBlockXXXV.
297  // <group>
298  virtual void getScalarColumnBoolV (Vector<Bool>* dataPtr);
299  virtual void getScalarColumnuCharV (Vector<uChar>* dataPtr);
300  virtual void getScalarColumnShortV (Vector<Short>* dataPtr);
301  virtual void getScalarColumnuShortV (Vector<uShort>* dataPtr);
302  virtual void getScalarColumnIntV (Vector<Int>* dataPtr);
303  virtual void getScalarColumnuIntV (Vector<uInt>* dataPtr);
304  virtual void getScalarColumnInt64V (Vector<Int64>* dataPtr);
305  virtual void getScalarColumnfloatV (Vector<float>* dataPtr);
306  virtual void getScalarColumndoubleV (Vector<double>* dataPtr);
307  virtual void getScalarColumnComplexV (Vector<Complex>* dataPtr);
308  virtual void getScalarColumnDComplexV (Vector<DComplex>* dataPtr);
309  virtual void getScalarColumnStringV (Vector<String>* dataPtr);
310  // </group>
311 
312  // Put the scalar values into the entire column.
313  // The buffer pointed to by dataPtr has to have the correct length.
314  // (which is guaranteed by the ScalarColumn putColumn function).
315  // The default implementation uses the corresponding putBlockXXXV.
316  // <group>
317  virtual void putScalarColumnBoolV (const Vector<Bool>* dataPtr);
318  virtual void putScalarColumnuCharV (const Vector<uChar>* dataPtr);
319  virtual void putScalarColumnShortV (const Vector<Short>* dataPtr);
320  virtual void putScalarColumnuShortV (const Vector<uShort>* dataPtr);
321  virtual void putScalarColumnIntV (const Vector<Int>* dataPtr);
322  virtual void putScalarColumnuIntV (const Vector<uInt>* dataPtr);
323  virtual void putScalarColumnInt64V (const Vector<Int64>* dataPtr);
324  virtual void putScalarColumnfloatV (const Vector<float>* dataPtr);
325  virtual void putScalarColumndoubleV (const Vector<double>* dataPtr);
326  virtual void putScalarColumnComplexV (const Vector<Complex>* dataPtr);
327  virtual void putScalarColumnDComplexV (const Vector<DComplex>* dataPtr);
328  virtual void putScalarColumnStringV (const Vector<String>* dataPtr);
329  // </group>
330 
331  // Get the scalar values in some cells of the column.
332  // The buffer pointed to by dataPtr has to have the correct length.
333  // (which is guaranteed by the ScalarColumn getColumnCells function).
334  // The default implementation loops through all rows.
335  // <group>
336  virtual void getScalarColumnCellsBoolV (const RefRows& rownrs,
337  Vector<Bool>* dataPtr);
338  virtual void getScalarColumnCellsuCharV (const RefRows& rownrs,
339  Vector<uChar>* dataPtr);
340  virtual void getScalarColumnCellsShortV (const RefRows& rownrs,
341  Vector<Short>* dataPtr);
342  virtual void getScalarColumnCellsuShortV (const RefRows& rownrs,
343  Vector<uShort>* dataPtr);
344  virtual void getScalarColumnCellsIntV (const RefRows& rownrs,
345  Vector<Int>* dataPtr);
346  virtual void getScalarColumnCellsuIntV (const RefRows& rownrs,
347  Vector<uInt>* dataPtr);
348  virtual void getScalarColumnCellsInt64V (const RefRows& rownrs,
349  Vector<Int64>* dataPtr);
350  virtual void getScalarColumnCellsfloatV (const RefRows& rownrs,
351  Vector<float>* dataPtr);
352  virtual void getScalarColumnCellsdoubleV (const RefRows& rownrs,
353  Vector<double>* dataPtr);
354  virtual void getScalarColumnCellsComplexV (const RefRows& rownrs,
355  Vector<Complex>* dataPtr);
356  virtual void getScalarColumnCellsDComplexV (const RefRows& rownrs,
357  Vector<DComplex>* dataPtr);
358  virtual void getScalarColumnCellsStringV (const RefRows& rownrs,
359  Vector<String>* dataPtr);
360  // </group>
361 
362  // Put the scalar values into some cells of the column.
363  // The buffer pointed to by dataPtr has to have the correct length.
364  // (which is guaranteed by the ScalarColumn putColumnCells function).
365  // The default implementation loops through all rows.
366  // <group>
367  virtual void putScalarColumnCellsBoolV (const RefRows& rownrs,
368  const Vector<Bool>* dataPtr);
369  virtual void putScalarColumnCellsuCharV (const RefRows& rownrs,
370  const Vector<uChar>* dataPtr);
371  virtual void putScalarColumnCellsShortV (const RefRows& rownrs,
372  const Vector<Short>* dataPtr);
373  virtual void putScalarColumnCellsuShortV (const RefRows& rownrs,
374  const Vector<uShort>* dataPtr);
375  virtual void putScalarColumnCellsIntV (const RefRows& rownrs,
376  const Vector<Int>* dataPtr);
377  virtual void putScalarColumnCellsuIntV (const RefRows& rownrs,
378  const Vector<uInt>* dataPtr);
379  virtual void putScalarColumnCellsInt64V (const RefRows& rownrs,
380  const Vector<Int64>* dataPtr);
381  virtual void putScalarColumnCellsfloatV (const RefRows& rownrs,
382  const Vector<float>* dataPtr);
383  virtual void putScalarColumnCellsdoubleV (const RefRows& rownrs,
384  const Vector<double>* dataPtr);
385  virtual void putScalarColumnCellsComplexV (const RefRows& rownrs,
386  const Vector<Complex>* dataPtr);
387  virtual void putScalarColumnCellsDComplexV (const RefRows& rownrs,
388  const Vector<DComplex>* dataPtr);
389  virtual void putScalarColumnCellsStringV (const RefRows& rownrs,
390  const Vector<String>* dataPtr);
391  // </group>
392 
393  // Get scalars from the given row on with a maximum of nrmax values.
394  // This can be used to get an entire column of scalars or to get
395  // a part of a column (for a cache for example).
396  // The buffer pointed to by dataPtr has to have the length nrmax.
397  // (which is guaranteed by the ScalarColumn get function).
398  // The default implementation gets one value.
399  // <group>
400  virtual uInt getBlockBoolV (uInt rownr, uInt nrmax,
401  Bool* dataPtr);
402  virtual uInt getBlockuCharV (uInt rownr, uInt nrmax,
403  uChar* dataPtr);
404  virtual uInt getBlockShortV (uInt rownr, uInt nrmax,
405  Short* dataPtr);
406  virtual uInt getBlockuShortV (uInt rownr, uInt nrmax,
407  uShort* dataPtr);
408  virtual uInt getBlockIntV (uInt rownr, uInt nrmax,
409  Int* dataPtr);
410  virtual uInt getBlockuIntV (uInt rownr, uInt nrmax,
411  uInt* dataPtr);
412  virtual uInt getBlockInt64V (uInt rownr, uInt nrmax,
413  Int64* dataPtr);
414  virtual uInt getBlockfloatV (uInt rownr, uInt nrmax,
415  float* dataPtr);
416  virtual uInt getBlockdoubleV (uInt rownr, uInt nrmax,
417  double* dataPtr);
418  virtual uInt getBlockComplexV (uInt rownr, uInt nrmax,
419  Complex* dataPtr);
420  virtual uInt getBlockDComplexV (uInt rownr, uInt nrmax,
421  DComplex* dataPtr);
422  virtual uInt getBlockStringV (uInt rownr, uInt nrmax,
423  String* dataPtr);
424  // </group>
425 
426  // Put nrmax scalars from the given row on.
427  // This can be used to put an entire column of scalars or to put
428  // a part of a column (for a cache for example).
429  // The buffer pointed to by dataPtr has to have the length nrmax.
430  // The default implementation puts one value at the time.
431  // <group>
432  virtual void putBlockBoolV (uInt rownr, uInt nrmax,
433  const Bool* dataPtr);
434  virtual void putBlockuCharV (uInt rownr, uInt nrmax,
435  const uChar* dataPtr);
436  virtual void putBlockShortV (uInt rownr, uInt nrmax,
437  const Short* dataPtr);
438  virtual void putBlockuShortV (uInt rownr, uInt nrmax,
439  const uShort* dataPtr);
440  virtual void putBlockIntV (uInt rownr, uInt nrmax,
441  const Int* dataPtr);
442  virtual void putBlockuIntV (uInt rownr, uInt nrmax,
443  const uInt* dataPtr);
444  virtual void putBlockInt64V (uInt rownr, uInt nrmax,
445  const Int64* dataPtr);
446  virtual void putBlockfloatV (uInt rownr, uInt nrmax,
447  const float* dataPtr);
448  virtual void putBlockdoubleV (uInt rownr, uInt nrmax,
449  const double* dataPtr);
450  virtual void putBlockComplexV (uInt rownr, uInt nrmax,
451  const Complex* dataPtr);
452  virtual void putBlockDComplexV (uInt rownr, uInt nrmax,
453  const DComplex* dataPtr);
454  virtual void putBlockStringV (uInt rownr, uInt nrmax,
455  const String* dataPtr);
456  // </group>
457 
458  // Get the array value in the given row.
459  // The array pointed to by dataPtr has to have the correct length
460  // (which is guaranteed by the ArrayColumn get function).
461  // The default implementation loops through all rows.
462  // <group>
463  virtual void getArrayBoolV (uInt rownr, Array<Bool>* dataPtr);
464  virtual void getArrayuCharV (uInt rownr, Array<uChar>* dataPtr);
465  virtual void getArrayShortV (uInt rownr, Array<Short>* dataPtr);
466  virtual void getArrayuShortV (uInt rownr, Array<uShort>* dataPtr);
467  virtual void getArrayIntV (uInt rownr, Array<Int>* dataPtr);
468  virtual void getArrayuIntV (uInt rownr, Array<uInt>* dataPtr);
469  virtual void getArrayInt64V (uInt rownr, Array<Int64>* dataPtr);
470  virtual void getArrayfloatV (uInt rownr, Array<float>* dataPtr);
471  virtual void getArraydoubleV (uInt rownr, Array<double>* dataPtr);
472  virtual void getArrayComplexV (uInt rownr, Array<Complex>* dataPtr);
473  virtual void getArrayDComplexV (uInt rownr, Array<DComplex>* dataPtr);
474  virtual void getArrayStringV (uInt rownr, Array<String>* dataPtr);
475  // </group>
476 
477  // Put the array value into the given row.
478  // The buffer pointed to by dataPtr has to have the correct length
479  // (which is guaranteed by the ArrayColumn put function).
480  // The default implementation loops through all rows.
481  // <group>
482  virtual void putArrayBoolV (uInt rownr,
483  const Array<Bool>* dataPtr);
484  virtual void putArrayuCharV (uInt rownr,
485  const Array<uChar>* dataPtr);
486  virtual void putArrayShortV (uInt rownr,
487  const Array<Short>* dataPtr);
488  virtual void putArrayuShortV (uInt rownr,
489  const Array<uShort>* dataPtr);
490  virtual void putArrayIntV (uInt rownr,
491  const Array<Int>* dataPtr);
492  virtual void putArrayuIntV (uInt rownr,
493  const Array<uInt>* dataPtr);
494  virtual void putArrayInt64V (uInt rownr,
495  const Array<Int64>* dataPtr);
496  virtual void putArrayfloatV (uInt rownr,
497  const Array<float>* dataPtr);
498  virtual void putArraydoubleV (uInt rownr,
499  const Array<double>* dataPtr);
500  virtual void putArrayComplexV (uInt rownr,
501  const Array<Complex>* dataPtr);
502  virtual void putArrayDComplexV (uInt rownr,
503  const Array<DComplex>* dataPtr);
504  virtual void putArrayStringV (uInt rownr,
505  const Array<String>* dataPtr);
506  // </group>
507 
508  // Get the array values in the entire column.
509  // The buffer pointed to by dataPtr has to have the correct length.
510  // (which is guaranteed by the ArrayColumn getColumn function).
511  // The default implementation uses the corresponding getBlockXXXV.
512  // <group>
513  virtual void getArrayColumnBoolV (Array<Bool>* dataPtr);
514  virtual void getArrayColumnuCharV (Array<uChar>* dataPtr);
515  virtual void getArrayColumnShortV (Array<Short>* dataPtr);
516  virtual void getArrayColumnuShortV (Array<uShort>* dataPtr);
517  virtual void getArrayColumnIntV (Array<Int>* dataPtr);
518  virtual void getArrayColumnuIntV (Array<uInt>* dataPtr);
519  virtual void getArrayColumnInt64V (Array<Int64>* dataPtr);
520  virtual void getArrayColumnfloatV (Array<float>* dataPtr);
521  virtual void getArrayColumndoubleV (Array<double>* dataPtr);
522  virtual void getArrayColumnComplexV (Array<Complex>* dataPtr);
523  virtual void getArrayColumnDComplexV (Array<DComplex>* dataPtr);
524  virtual void getArrayColumnStringV (Array<String>* dataPtr);
525  // </group>
526 
527  // Put the array values into the entire column.
528  // The buffer pointed to by dataPtr has to have the correct length.
529  // (which is guaranteed by the ArrayColumn putColumn function).
530  // The default implementation uses the corresponding putBlockXXXV.
531  // <group>
532  virtual void putArrayColumnBoolV (const Array<Bool>* dataPtr);
533  virtual void putArrayColumnuCharV (const Array<uChar>* dataPtr);
534  virtual void putArrayColumnShortV (const Array<Short>* dataPtr);
535  virtual void putArrayColumnuShortV (const Array<uShort>* dataPtr);
536  virtual void putArrayColumnIntV (const Array<Int>* dataPtr);
537  virtual void putArrayColumnuIntV (const Array<uInt>* dataPtr);
538  virtual void putArrayColumnInt64V (const Array<Int64>* dataPtr);
539  virtual void putArrayColumnfloatV (const Array<float>* dataPtr);
540  virtual void putArrayColumndoubleV (const Array<double>* dataPtr);
541  virtual void putArrayColumnComplexV (const Array<Complex>* dataPtr);
542  virtual void putArrayColumnDComplexV (const Array<DComplex>* dataPtr);
543  virtual void putArrayColumnStringV (const Array<String>* dataPtr);
544  // </group>
545 
546  // Get the array values in some cells of the column.
547  // The buffer pointed to by dataPtr has to have the correct length.
548  // (which is guaranteed by the ArrayColumn getColumnCells function).
549  // The default implementation throws an "invalid operation exception".
550  // <group>
551  virtual void getArrayColumnCellsBoolV (const RefRows& rownrs,
552  Array<Bool>* dataPtr);
553  virtual void getArrayColumnCellsuCharV (const RefRows& rownrs,
554  Array<uChar>* dataPtr);
555  virtual void getArrayColumnCellsShortV (const RefRows& rownrs,
556  Array<Short>* dataPtr);
557  virtual void getArrayColumnCellsuShortV (const RefRows& rownrs,
558  Array<uShort>* dataPtr);
559  virtual void getArrayColumnCellsIntV (const RefRows& rownrs,
560  Array<Int>* dataPtr);
561  virtual void getArrayColumnCellsuIntV (const RefRows& rownrs,
562  Array<uInt>* dataPtr);
563  virtual void getArrayColumnCellsInt64V (const RefRows& rownrs,
564  Array<Int64>* dataPtr);
565  virtual void getArrayColumnCellsfloatV (const RefRows& rownrs,
566  Array<float>* dataPtr);
567  virtual void getArrayColumnCellsdoubleV (const RefRows& rownrs,
568  Array<double>* dataPtr);
569  virtual void getArrayColumnCellsComplexV (const RefRows& rownrs,
570  Array<Complex>* dataPtr);
571  virtual void getArrayColumnCellsDComplexV (const RefRows& rownrs,
572  Array<DComplex>* dataPtr);
573  virtual void getArrayColumnCellsStringV (const RefRows& rownrs,
574  Array<String>* dataPtr);
575  // </group>
576 
577  // Put the array values into some cells of the column.
578  // The buffer pointed to by dataPtr has to have the correct length.
579  // (which is guaranteed by the ArrayColumn putColumnCells function).
580  // The default implementation throws an "invalid operation exception".
581  // <group>
582  virtual void putArrayColumnCellsBoolV (const RefRows& rownrs,
583  const Array<Bool>* dataPtr);
584  virtual void putArrayColumnCellsuCharV (const RefRows& rownrs,
585  const Array<uChar>* dataPtr);
586  virtual void putArrayColumnCellsShortV (const RefRows& rownrs,
587  const Array<Short>* dataPtr);
588  virtual void putArrayColumnCellsuShortV (const RefRows& rownrs,
589  const Array<uShort>* dataPtr);
590  virtual void putArrayColumnCellsIntV (const RefRows& rownrs,
591  const Array<Int>* dataPtr);
592  virtual void putArrayColumnCellsuIntV (const RefRows& rownrs,
593  const Array<uInt>* dataPtr);
594  virtual void putArrayColumnCellsInt64V (const RefRows& rownrs,
595  const Array<Int64>* dataPtr);
596  virtual void putArrayColumnCellsfloatV (const RefRows& rownrs,
597  const Array<float>* dataPtr);
598  virtual void putArrayColumnCellsdoubleV (const RefRows& rownrs,
599  const Array<double>* dataPtr);
600  virtual void putArrayColumnCellsComplexV (const RefRows& rownrs,
601  const Array<Complex>* dataPtr);
602  virtual void putArrayColumnCellsDComplexV (const RefRows& rownrs,
603  const Array<DComplex>* dataPtr);
604  virtual void putArrayColumnCellsStringV (const RefRows& rownrs,
605  const Array<String>* dataPtr);
606  // </group>
607 
608  // Get the array value in the given row.
609  // The array pointed to by dataPtr has to have the correct length
610  // (which is guaranteed by the ArrayColumn getSlice function).
611  // The default implementation throws an "invalid operation exception".
612  // <group>
613  virtual void getSliceBoolV (uInt rownr, const Slicer& ns,
614  Array<Bool>* dataPtr);
615  virtual void getSliceuCharV (uInt rownr, const Slicer& ns,
616  Array<uChar>* dataPtr);
617  virtual void getSliceShortV (uInt rownr, const Slicer& ns,
618  Array<Short>* dataPtr);
619  virtual void getSliceuShortV (uInt rownr, const Slicer& ns,
620  Array<uShort>* dataPtr);
621  virtual void getSliceIntV (uInt rownr, const Slicer& ns,
622  Array<Int>* dataPtr);
623  virtual void getSliceuIntV (uInt rownr, const Slicer& ns,
624  Array<uInt>* dataPtr);
625  virtual void getSliceInt64V (uInt rownr, const Slicer& ns,
626  Array<Int64>* dataPtr);
627  virtual void getSlicefloatV (uInt rownr, const Slicer& ns,
628  Array<float>* dataPtr);
629  virtual void getSlicedoubleV (uInt rownr, const Slicer& ns,
630  Array<double>* dataPtr);
631  virtual void getSliceComplexV (uInt rownr, const Slicer& ns,
632  Array<Complex>* dataPtr);
633  virtual void getSliceDComplexV (uInt rownr, const Slicer& ns,
634  Array<DComplex>* dataPtr);
635  virtual void getSliceStringV (uInt rownr, const Slicer& ns,
636  Array<String>* dataPtr);
637  // </group>
638 
639  // Put the array value into the given row.
640  // The buffer pointed to by dataPtr has to have the correct length
641  // (which is guaranteed by the ArrayColumn putSlice function).
642  // The default implementation throws an "invalid operation exception".
643  // <group>
644  virtual void putSliceBoolV (uInt rownr, const Slicer& ns,
645  const Array<Bool>* dataPtr);
646  virtual void putSliceuCharV (uInt rownr, const Slicer& ns,
647  const Array<uChar>* dataPtr);
648  virtual void putSliceShortV (uInt rownr, const Slicer& ns,
649  const Array<Short>* dataPtr);
650  virtual void putSliceuShortV (uInt rownr, const Slicer& ns,
651  const Array<uShort>* dataPtr);
652  virtual void putSliceIntV (uInt rownr, const Slicer& ns,
653  const Array<Int>* dataPtr);
654  virtual void putSliceuIntV (uInt rownr, const Slicer& ns,
655  const Array<uInt>* dataPtr);
656  virtual void putSliceInt64V (uInt rownr, const Slicer& ns,
657  const Array<Int64>* dataPtr);
658  virtual void putSlicefloatV (uInt rownr, const Slicer& ns,
659  const Array<float>* dataPtr);
660  virtual void putSlicedoubleV (uInt rownr, const Slicer& ns,
661  const Array<double>* dataPtr);
662  virtual void putSliceComplexV (uInt rownr, const Slicer& ns,
663  const Array<Complex>* dataPtr);
664  virtual void putSliceDComplexV (uInt rownr, const Slicer& ns,
665  const Array<DComplex>* dataPtr);
666  virtual void putSliceStringV (uInt rownr, const Slicer& ns,
667  const Array<String>* dataPtr);
668  // </group>
669 
670  // Get the array values in the entire column.
671  // The buffer pointed to by dataPtr has to have the correct length.
672  // (which is guaranteed by the ArrayColumn getColumn function).
673  // The default implementation uses the corresponding getBlockXXXV.
674  // <group>
675  virtual void getColumnSliceBoolV (const Slicer& ns,
676  Array<Bool>* dataPtr);
677  virtual void getColumnSliceuCharV (const Slicer& ns,
678  Array<uChar>* dataPtr);
679  virtual void getColumnSliceShortV (const Slicer& ns,
680  Array<Short>* dataPtr);
681  virtual void getColumnSliceuShortV (const Slicer& ns,
682  Array<uShort>* dataPtr);
683  virtual void getColumnSliceIntV (const Slicer& ns,
684  Array<Int>* dataPtr);
685  virtual void getColumnSliceuIntV (const Slicer& ns,
686  Array<uInt>* dataPtr);
687  virtual void getColumnSliceInt64V (const Slicer& ns,
688  Array<Int64>* dataPtr);
689  virtual void getColumnSlicefloatV (const Slicer& ns,
690  Array<float>* dataPtr);
691  virtual void getColumnSlicedoubleV (const Slicer& ns,
692  Array<double>* dataPtr);
693  virtual void getColumnSliceComplexV (const Slicer& ns,
694  Array<Complex>* dataPtr);
695  virtual void getColumnSliceDComplexV (const Slicer& ns,
696  Array<DComplex>* dataPtr);
697  virtual void getColumnSliceStringV (const Slicer& ns,
698  Array<String>* dataPtr);
699  // </group>
700 
701  // Put the array values into the entire column.
702  // The buffer pointed to by dataPtr has to have the correct length.
703  // (which is guaranteed by the ArrayColumn putColumn function).
704  // The default implementation uses the corresponding putBlockXXXV.
705  // <group>
706  virtual void putColumnSliceBoolV (const Slicer& ns,
707  const Array<Bool>* dataPtr);
708  virtual void putColumnSliceuCharV (const Slicer& ns,
709  const Array<uChar>* dataPtr);
710  virtual void putColumnSliceShortV (const Slicer& ns,
711  const Array<Short>* dataPtr);
712  virtual void putColumnSliceuShortV (const Slicer& ns,
713  const Array<uShort>* dataPtr);
714  virtual void putColumnSliceIntV (const Slicer& ns,
715  const Array<Int>* dataPtr);
716  virtual void putColumnSliceuIntV (const Slicer& ns,
717  const Array<uInt>* dataPtr);
718  virtual void putColumnSliceInt64V (const Slicer& ns,
719  const Array<Int64>* dataPtr);
720  virtual void putColumnSlicefloatV (const Slicer& ns,
721  const Array<float>* dataPtr);
722  virtual void putColumnSlicedoubleV (const Slicer& ns,
723  const Array<double>* dataPtr);
724  virtual void putColumnSliceComplexV (const Slicer& ns,
725  const Array<Complex>* dataPtr);
726  virtual void putColumnSliceDComplexV (const Slicer& ns,
727  const Array<DComplex>* dataPtr);
728  virtual void putColumnSliceStringV (const Slicer& ns,
729  const Array<String>* dataPtr);
730  // </group>
731 
732  // Get the array values in some cells of the column.
733  // The buffer pointed to by dataPtr has to have the correct length.
734  // (which is guaranteed by the ArrayColumn getColumnCells function).
735  // The default implementation throws an "invalid operation exception".
736  // <group>
737  virtual void getColumnSliceCellsBoolV (const RefRows& rownrs,
738  const Slicer& ns,
739  Array<Bool>* dataPtr);
740  virtual void getColumnSliceCellsuCharV (const RefRows& rownrs,
741  const Slicer& ns,
742  Array<uChar>* dataPtr);
743  virtual void getColumnSliceCellsShortV (const RefRows& rownrs,
744  const Slicer& ns,
745  Array<Short>* dataPtr);
746  virtual void getColumnSliceCellsuShortV (const RefRows& rownrs,
747  const Slicer& ns,
748  Array<uShort>* dataPtr);
749  virtual void getColumnSliceCellsIntV (const RefRows& rownrs,
750  const Slicer& ns,
751  Array<Int>* dataPtr);
752  virtual void getColumnSliceCellsuIntV (const RefRows& rownrs,
753  const Slicer& ns,
754  Array<uInt>* dataPtr);
755  virtual void getColumnSliceCellsInt64V (const RefRows& rownrs,
756  const Slicer& ns,
757  Array<Int64>* dataPtr);
758  virtual void getColumnSliceCellsfloatV (const RefRows& rownrs,
759  const Slicer& ns,
760  Array<float>* dataPtr);
761  virtual void getColumnSliceCellsdoubleV (const RefRows& rownrs,
762  const Slicer& ns,
763  Array<double>* dataPtr);
764  virtual void getColumnSliceCellsComplexV (const RefRows& rownrs,
765  const Slicer& ns,
766  Array<Complex>* dataPtr);
767  virtual void getColumnSliceCellsDComplexV (const RefRows& rownrs,
768  const Slicer& ns,
769  Array<DComplex>* dataPtr);
770  virtual void getColumnSliceCellsStringV (const RefRows& rownrs,
771  const Slicer& ns,
772  Array<String>* dataPtr);
773  // </group>
774 
775  // Put the array values into some cells of the column.
776  // The buffer pointed to by dataPtr has to have the correct length.
777  // (which is guaranteed by the ArrayColumn putColumnSlice function).
778  // The default implementation throws an "invalid operation exception".
779  // <group>
780  virtual void putColumnSliceCellsBoolV (const RefRows& rownrs,
781  const Slicer& ns,
782  const Array<Bool>* dataPtr);
783  virtual void putColumnSliceCellsuCharV (const RefRows& rownrs,
784  const Slicer& ns,
785  const Array<uChar>* dataPtr);
786  virtual void putColumnSliceCellsShortV (const RefRows& rownrs,
787  const Slicer& ns,
788  const Array<Short>* dataPtr);
789  virtual void putColumnSliceCellsuShortV (const RefRows& rownrs,
790  const Slicer& ns,
791  const Array<uShort>* dataPtr);
792  virtual void putColumnSliceCellsIntV (const RefRows& rownrs,
793  const Slicer& ns,
794  const Array<Int>* dataPtr);
795  virtual void putColumnSliceCellsuIntV (const RefRows& rownrs,
796  const Slicer& ns,
797  const Array<uInt>* dataPtr);
798  virtual void putColumnSliceCellsInt64V (const RefRows& rownrs,
799  const Slicer& ns,
800  const Array<Int64>* dataPtr);
801  virtual void putColumnSliceCellsfloatV (const RefRows& rownrs,
802  const Slicer& ns,
803  const Array<float>* dataPtr);
804  virtual void putColumnSliceCellsdoubleV (const RefRows& rownrs,
805  const Slicer& ns,
806  const Array<double>* dataPtr);
807  virtual void putColumnSliceCellsComplexV (const RefRows& rownrs,
808  const Slicer& ns,
809  const Array<Complex>* dataPtr);
810  virtual void putColumnSliceCellsDComplexV (const RefRows& rownrs,
811  const Slicer& ns,
812  const Array<DComplex>* dataPtr);
813  virtual void putColumnSliceCellsStringV (const RefRows& rownrs,
814  const Slicer& ns,
815  const Array<String>* dataPtr);
816  // </group>
817 
818 
819 private:
820  // The data type of the column.
821  int dtype_p;
822 };
823 
824 
825 
826 
827 } //# NAMESPACE CASACORE - END
828 
829 #endif
virtual void putArrayColumnDComplexV(const Array< DComplex > *dataPtr)
virtual void putArrayColumnStringV(const Array< String > *dataPtr)
virtual void putArrayColumnCellsBoolV(const RefRows &rownrs, const Array< Bool > *dataPtr)
Put the array values into some cells of the column.
virtual void putSliceInt64V(uInt rownr, const Slicer &ns, const Array< Int64 > *dataPtr)
virtual void putColumnSliceCellsuShortV(const RefRows &rownrs, const Slicer &ns, const Array< uShort > *dataPtr)
virtual void getArrayColumnCellsuIntV(const RefRows &rownrs, Array< uInt > *dataPtr)
virtual void putArrayShortV(uInt rownr, const Array< Short > *dataPtr)
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
Definition: aipsxtype.h:38
int Int
Definition: aipstype.h:50
virtual void getArrayColumnShortV(Array< Short > *dataPtr)
std::vector< double > Vector
Definition: ds9context.h:24
virtual void putScalarColumnCellsInt64V(const RefRows &rownrs, const Vector< Int64 > *dataPtr)
virtual void getColumnSliceCellsComplexV(const RefRows &rownrs, const Slicer &ns, Array< Complex > *dataPtr)
virtual void getColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, void *dataPtr)
Get a section of some arrays in the column.
virtual void getArrayStringV(uInt rownr, Array< String > *dataPtr)
static Bool isNativeDataType(int dtype)
Test if the given data type is supported by storage managers.
virtual void putColumnSliceShortV(const Slicer &ns, const Array< Short > *dataPtr)
virtual void getArrayColumnCellsIntV(const RefRows &rownrs, Array< Int > *dataPtr)
virtual void getColumnSliceuShortV(const Slicer &ns, Array< uShort > *dataPtr)
virtual void getColumnSliceCellsInt64V(const RefRows &rownrs, const Slicer &ns, Array< Int64 > *dataPtr)
virtual void putColumnSliceInt64V(const Slicer &ns, const Array< Int64 > *dataPtr)
virtual uInt getBlockStringV(uInt rownr, uInt nrmax, String *dataPtr)
virtual void putColumnSliceCellsuIntV(const RefRows &rownrs, const Slicer &ns, const Array< uInt > *dataPtr)
virtual void putScalarColumnCellsStringV(const RefRows &rownrs, const Vector< String > *dataPtr)
virtual void getArrayColumnComplexV(Array< Complex > *dataPtr)
virtual uInt getBlockDComplexV(uInt rownr, uInt nrmax, DComplex *dataPtr)
virtual void putArrayColumnCellsuShortV(const RefRows &rownrs, const Array< uShort > *dataPtr)
virtual void getScalarColumnCellsuIntV(const RefRows &rownrs, Vector< uInt > *dataPtr)
virtual void putArrayColumnCellsInt64V(const RefRows &rownrs, const Array< Int64 > *dataPtr)
virtual void putColumnSliceuCharV(const Slicer &ns, const Array< uChar > *dataPtr)
virtual void putArrayColumnCellsdoubleV(const RefRows &rownrs, const Array< double > *dataPtr)
virtual void putArrayColumnuCharV(const Array< uChar > *dataPtr)
virtual void putScalarColumnuIntV(const Vector< uInt > *dataPtr)
virtual void getScalarColumnCellsStringV(const RefRows &rownrs, Vector< String > *dataPtr)
virtual void putScalarColumnShortV(const Vector< Short > *dataPtr)
Abstract base class for a column in a data manager.
Definition: DataManager.h:611
virtual void getArrayColumnCellsBoolV(const RefRows &rownrs, Array< Bool > *dataPtr)
Get the array values in some cells of the column.
virtual void putScalarColumnComplexV(const Vector< Complex > *dataPtr)
void getScalarColumnV(void *dataPtr)
Get all scalar values in the column.
virtual void getScalarColumnCellsComplexV(const RefRows &rownrs, Vector< Complex > *dataPtr)
virtual void putArrayColumnfloatV(const Array< float > *dataPtr)
virtual void getArrayColumnCellsdoubleV(const RefRows &rownrs, Array< double > *dataPtr)
virtual void putScalarColumnCellsShortV(const RefRows &rownrs, const Vector< Short > *dataPtr)
virtual void putBlockComplexV(uInt rownr, uInt nrmax, const Complex *dataPtr)
void putScalarColumnCellsV(const RefRows &rownrs, const void *dataPtr)
Put some scalar values in the column.
virtual void getColumnSliceCellsdoubleV(const RefRows &rownrs, const Slicer &ns, Array< double > *dataPtr)
virtual void putArrayInt64V(uInt rownr, const Array< Int64 > *dataPtr)
virtual void putArrayColumnIntV(const Array< Int > *dataPtr)
unsigned char uChar
Definition: aipstype.h:47
virtual void putScalarColumndoubleV(const Vector< double > *dataPtr)
virtual void putSliceShortV(uInt rownr, const Slicer &ns, const Array< Short > *dataPtr)
void getSliceV(uInt rownr, const Slicer &slicer, void *dataPtr)
Get a section of the array in the given row.
virtual void putArrayColumnCellsuCharV(const RefRows &rownrs, const Array< uChar > *dataPtr)
virtual void getArrayColumnuIntV(Array< uInt > *dataPtr)
virtual void getScalarColumnuCharV(Vector< uChar > *dataPtr)
virtual uInt getBlockInt64V(uInt rownr, uInt nrmax, Int64 *dataPtr)
void getColumnSliceV(const Slicer &slicer, void *dataPtr)
Get a section of all arrays in the column.
virtual void putColumnSliceCellsfloatV(const RefRows &rownrs, const Slicer &ns, const Array< float > *dataPtr)
virtual void getScalarColumnCellsDComplexV(const RefRows &rownrs, Vector< DComplex > *dataPtr)
virtual void putArrayuIntV(uInt rownr, const Array< uInt > *dataPtr)
virtual uInt getBlockComplexV(uInt rownr, uInt nrmax, Complex *dataPtr)
virtual void getScalarColumnfloatV(Vector< float > *dataPtr)
virtual void putArrayComplexV(uInt rownr, const Array< Complex > *dataPtr)
virtual void putScalarColumnCellsuIntV(const RefRows &rownrs, const Vector< uInt > *dataPtr)
StManColumn & operator=(const StManColumn &)
The object cannot be assigned to.
virtual void getSliceDComplexV(uInt rownr, const Slicer &ns, Array< DComplex > *dataPtr)
virtual void getArrayuIntV(uInt rownr, Array< uInt > *dataPtr)
virtual void getColumnSliceCellsBoolV(const RefRows &rownrs, const Slicer &ns, Array< Bool > *dataPtr)
Get the array values in some cells of the column.
virtual void getScalarColumnComplexV(Vector< Complex > *dataPtr)
virtual void putScalarColumnStringV(const Vector< String > *dataPtr)
Bool canAccessArrayColumnCells(Bool &reask) const
All storage managers can handle access to array column cells, because this class contains a default i...
virtual void getScalarColumnShortV(Vector< Short > *dataPtr)
virtual void getArrayColumnCellsuCharV(const RefRows &rownrs, Array< uChar > *dataPtr)
virtual void putScalarColumnBoolV(const Vector< Bool > *dataPtr)
Put the scalar values into the entire column.
virtual void putScalarColumnDComplexV(const Vector< DComplex > *dataPtr)
virtual void putSliceIntV(uInt rownr, const Slicer &ns, const Array< Int > *dataPtr)
void getArrayColumnCellsV(const RefRows &rownrs, void *dataPtr)
Get some array values in the column.
virtual void getScalarColumndoubleV(Vector< double > *dataPtr)
virtual void putArrayBoolV(uInt rownr, const Array< Bool > *dataPtr)
Put the array value into the given row.
virtual void putColumnSliceCellsDComplexV(const RefRows &rownrs, const Slicer &ns, const Array< DComplex > *dataPtr)
Bool canAccessScalarColumnCells(Bool &reask) const
All storage managers can handle access to scalar column cells, because this class contains a default ...
virtual void putBlockIntV(uInt rownr, uInt nrmax, const Int *dataPtr)
virtual void putSliceBoolV(uInt rownr, const Slicer &ns, const Array< Bool > *dataPtr)
Put the array value into the given row.
virtual void getScalarColumnCellsShortV(const RefRows &rownrs, Vector< Short > *dataPtr)
virtual void putArrayColumnuShortV(const Array< uShort > *dataPtr)
virtual void putBlockuCharV(uInt rownr, uInt nrmax, const uChar *dataPtr)
virtual void getColumnSliceCellsShortV(const RefRows &rownrs, const Slicer &ns, Array< Short > *dataPtr)
virtual void getSliceInt64V(uInt rownr, const Slicer &ns, Array< Int64 > *dataPtr)
virtual uInt getBlockuIntV(uInt rownr, uInt nrmax, uInt *dataPtr)
int dataType() const
Return the data type of the column.
virtual void getSliceuIntV(uInt rownr, const Slicer &ns, Array< uInt > *dataPtr)
short Short
Definition: aipstype.h:48
virtual void getArrayuShortV(uInt rownr, Array< uShort > *dataPtr)
void throwInvalidOp(const String &op) const
Throw an &quot;invalid operation&quot; exception for the default implementation of getArray.
virtual void getArrayInt64V(uInt rownr, Array< Int64 > *dataPtr)
virtual void putColumnSliceCellsShortV(const RefRows &rownrs, const Slicer &ns, const Array< Short > *dataPtr)
virtual void putArrayStringV(uInt rownr, const Array< String > *dataPtr)
virtual void getColumnSliceCellsStringV(const RefRows &rownrs, const Slicer &ns, Array< String > *dataPtr)
virtual void putBlockfloatV(uInt rownr, uInt nrmax, const float *dataPtr)
virtual void getSliceIntV(uInt rownr, const Slicer &ns, Array< Int > *dataPtr)
virtual void putColumnSliceStringV(const Slicer &ns, const Array< String > *dataPtr)
virtual void putScalarColumnfloatV(const Vector< float > *dataPtr)
virtual void putArrayColumnCellsDComplexV(const RefRows &rownrs, const Array< DComplex > *dataPtr)
virtual void putScalarColumnCellsuShortV(const RefRows &rownrs, const Vector< uShort > *dataPtr)
virtual void getColumnSliceuCharV(const Slicer &ns, Array< uChar > *dataPtr)
virtual void putSliceStringV(uInt rownr, const Slicer &ns, const Array< String > *dataPtr)
virtual void putBlockInt64V(uInt rownr, uInt nrmax, const Int64 *dataPtr)
virtual void getScalarColumnBoolV(Vector< Bool > *dataPtr)
Get the scalar values in the entire column.
virtual void getColumnSliceShortV(const Slicer &ns, Array< Short > *dataPtr)
virtual void getArrayColumnCellsInt64V(const RefRows &rownrs, Array< Int64 > *dataPtr)
virtual void putBlockBoolV(uInt rownr, uInt nrmax, const Bool *dataPtr)
Put nrmax scalars from the given row on.
virtual void getArrayColumnCellsDComplexV(const RefRows &rownrs, Array< DComplex > *dataPtr)
virtual void getSlicedoubleV(uInt rownr, const Slicer &ns, Array< double > *dataPtr)
virtual void putSliceuCharV(uInt rownr, const Slicer &ns, const Array< uChar > *dataPtr)
virtual void getSliceStringV(uInt rownr, const Slicer &ns, Array< String > *dataPtr)
virtual void putColumnSliceCellsIntV(const RefRows &rownrs, const Slicer &ns, const Array< Int > *dataPtr)
void putArrayColumnV(const void *dataPtr)
Put all array values in the column.
virtual void putArrayfloatV(uInt rownr, const Array< float > *dataPtr)
virtual void getColumnSliceCellsuCharV(const RefRows &rownrs, const Slicer &ns, Array< uChar > *dataPtr)
virtual void putColumnSlicefloatV(const Slicer &ns, const Array< float > *dataPtr)
virtual void putArrayColumnCellsComplexV(const RefRows &rownrs, const Array< Complex > *dataPtr)
virtual void putArrayColumnCellsuIntV(const RefRows &rownrs, const Array< uInt > *dataPtr)
virtual void getColumnSliceIntV(const Slicer &ns, Array< Int > *dataPtr)
virtual void putArrayColumnCellsShortV(const RefRows &rownrs, const Array< Short > *dataPtr)
virtual uInt getBlockfloatV(uInt rownr, uInt nrmax, float *dataPtr)
virtual void putSlicefloatV(uInt rownr, const Slicer &ns, const Array< float > *dataPtr)
virtual void getColumnSliceBoolV(const Slicer &ns, Array< Bool > *dataPtr)
Get the array values in the entire column.
Bool canAccessScalarColumn(Bool &reask) const
By default the storage manager can handle access to a scalar column.
virtual void getSliceShortV(uInt rownr, const Slicer &ns, Array< Short > *dataPtr)
virtual void putColumnSliceCellsuCharV(const RefRows &rownrs, const Slicer &ns, const Array< uChar > *dataPtr)
virtual void getScalarColumnIntV(Vector< Int > *dataPtr)
virtual void putColumnSliceIntV(const Slicer &ns, const Array< Int > *dataPtr)
virtual void getSlicefloatV(uInt rownr, const Slicer &ns, Array< float > *dataPtr)
void putColumnSliceV(const Slicer &slicer, const void *dataPtr)
Put into a section of all arrays in the column.
virtual void putArrayColumnCellsIntV(const RefRows &rownrs, const Array< Int > *dataPtr)
virtual void putScalarColumnCellsComplexV(const RefRows &rownrs, const Vector< Complex > *dataPtr)
void putArrayV(uInt rownr, const void *dataPtr)
Put the array value into the given row.
virtual void getArrayuCharV(uInt rownr, Array< uChar > *dataPtr)
Class holding the row numbers in a RefTable.
Definition: RefRows.h:85
virtual void getArrayBoolV(uInt rownr, Array< Bool > *dataPtr)
Get the array value in the given row.
virtual void getScalarColumnCellsuCharV(const RefRows &rownrs, Vector< uChar > *dataPtr)
virtual void getScalarColumnStringV(Vector< String > *dataPtr)
virtual void getSliceComplexV(uInt rownr, const Slicer &ns, Array< Complex > *dataPtr)
virtual void getArrayColumnIntV(Array< Int > *dataPtr)
virtual void putArrayuCharV(uInt rownr, const Array< uChar > *dataPtr)
virtual void putScalarColumnCellsfloatV(const RefRows &rownrs, const Vector< float > *dataPtr)
virtual void getArrayColumnCellsuShortV(const RefRows &rownrs, Array< uShort > *dataPtr)
virtual void putScalarColumnCellsBoolV(const RefRows &rownrs, const Vector< Bool > *dataPtr)
Put the scalar values into some cells of the column.
uInt getBlockV(uInt rownr, uInt nrmax, void *dataPtr)
Get scalars from the given row on with a maximum of nrmax values.
virtual void putBlockStringV(uInt rownr, uInt nrmax, const String *dataPtr)
virtual void getArraydoubleV(uInt rownr, Array< double > *dataPtr)
virtual void getColumnSliceCellsDComplexV(const RefRows &rownrs, const Slicer &ns, Array< DComplex > *dataPtr)
virtual void putColumnSliceCellsComplexV(const RefRows &rownrs, const Slicer &ns, const Array< Complex > *dataPtr)
virtual void putBlockdoubleV(uInt rownr, uInt nrmax, const double *dataPtr)
virtual uInt getBlockShortV(uInt rownr, uInt nrmax, Short *dataPtr)
virtual void getArrayColumnStringV(Array< String > *dataPtr)
virtual void getArrayColumnuCharV(Array< uChar > *dataPtr)
virtual void putColumnSliceCellsdoubleV(const RefRows &rownrs, const Slicer &ns, const Array< double > *dataPtr)
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
virtual void putArrayColumnCellsStringV(const RefRows &rownrs, const Array< String > *dataPtr)
virtual void getScalarColumnuShortV(Vector< uShort > *dataPtr)
virtual void getArrayColumnBoolV(Array< Bool > *dataPtr)
Get the array values in the entire column.
virtual void putArrayColumnShortV(const Array< Short > *dataPtr)
virtual uInt getBlockIntV(uInt rownr, uInt nrmax, Int *dataPtr)
virtual void putArrayColumnInt64V(const Array< Int64 > *dataPtr)
void getScalarColumnCellsV(const RefRows &rownrs, void *dataPtr)
Get some scalar values in the column.
virtual void getSliceuShortV(uInt rownr, const Slicer &ns, Array< uShort > *dataPtr)
virtual void putColumnSliceCellsStringV(const RefRows &rownrs, const Slicer &ns, const Array< String > *dataPtr)
virtual void putColumnSlicedoubleV(const Slicer &ns, const Array< double > *dataPtr)
virtual void getColumnSliceCellsuShortV(const RefRows &rownrs, const Slicer &ns, Array< uShort > *dataPtr)
virtual void getArrayColumnCellsComplexV(const RefRows &rownrs, Array< Complex > *dataPtr)
virtual void getScalarColumnCellsIntV(const RefRows &rownrs, Vector< Int > *dataPtr)
virtual void getArrayShortV(uInt rownr, Array< Short > *dataPtr)
virtual void getColumnSliceDComplexV(const Slicer &ns, Array< DComplex > *dataPtr)
virtual void getArrayColumnfloatV(Array< float > *dataPtr)
virtual void getColumnSliceStringV(const Slicer &ns, Array< String > *dataPtr)
virtual void getArrayColumnInt64V(Array< Int64 > *dataPtr)
virtual void putColumnSliceDComplexV(const Slicer &ns, const Array< DComplex > *dataPtr)
virtual void putScalarColumnCellsDComplexV(const RefRows &rownrs, const Vector< DComplex > *dataPtr)
virtual void putScalarColumnCellsdoubleV(const RefRows &rownrs, const Vector< double > *dataPtr)
virtual void getArrayDComplexV(uInt rownr, Array< DComplex > *dataPtr)
virtual void putScalarColumnCellsuCharV(const RefRows &rownrs, const Vector< uChar > *dataPtr)
StManColumn(int dataType)
Default constructor.
virtual void putSliceComplexV(uInt rownr, const Slicer &ns, const Array< Complex > *dataPtr)
virtual void putColumnSliceCellsBoolV(const RefRows &rownrs, const Slicer &ns, const Array< Bool > *dataPtr)
Put the array values into some cells of the column.
virtual void putArrayColumnComplexV(const Array< Complex > *dataPtr)
Specify which elements to extract from an n-dimensional array.
Definition: Slicer.h:289
virtual void putColumnSliceuShortV(const Slicer &ns, const Array< uShort > *dataPtr)
virtual uInt getBlockdoubleV(uInt rownr, uInt nrmax, double *dataPtr)
virtual void getArrayComplexV(uInt rownr, Array< Complex > *dataPtr)
virtual void getColumnSlicedoubleV(const Slicer &ns, Array< double > *dataPtr)
virtual void getArrayIntV(uInt rownr, Array< Int > *dataPtr)
virtual void putBlockDComplexV(uInt rownr, uInt nrmax, const DComplex *dataPtr)
virtual void getScalarColumnCellsInt64V(const RefRows &rownrs, Vector< Int64 > *dataPtr)
virtual uInt getBlockuCharV(uInt rownr, uInt nrmax, uChar *dataPtr)
virtual void getArrayfloatV(uInt rownr, Array< float > *dataPtr)
virtual void putBlockShortV(uInt rownr, uInt nrmax, const Short *dataPtr)
virtual void putSliceuIntV(uInt rownr, const Slicer &ns, const Array< uInt > *dataPtr)
virtual void getArrayColumndoubleV(Array< double > *dataPtr)
void putSliceV(uInt rownr, const Slicer &slicer, const void *dataPtr)
Put into a section of the array in the given row.
virtual void getArrayColumnCellsStringV(const RefRows &rownrs, Array< String > *dataPtr)
virtual uInt getBlockBoolV(uInt rownr, uInt nrmax, Bool *dataPtr)
Get scalars from the given row on with a maximum of nrmax values.
virtual void putColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, const void *dataPtr)
Put into a section of some arrays in the column.
virtual void putScalarColumnInt64V(const Vector< Int64 > *dataPtr)
virtual void getScalarColumnDComplexV(Vector< DComplex > *dataPtr)
void putArrayColumnCellsV(const RefRows &rownrs, const void *dataPtr)
Put some array values in the column.
virtual void putArrayDComplexV(uInt rownr, const Array< DComplex > *dataPtr)
virtual void getColumnSliceCellsuIntV(const RefRows &rownrs, const Slicer &ns, Array< uInt > *dataPtr)
virtual void getScalarColumnCellsuShortV(const RefRows &rownrs, Vector< uShort > *dataPtr)
virtual void getColumnSliceComplexV(const Slicer &ns, Array< Complex > *dataPtr)
void getArrayV(uInt rownr, void *dataPtr)
Get the array value in the given row.
virtual void getColumnSliceCellsIntV(const RefRows &rownrs, const Slicer &ns, Array< Int > *dataPtr)
virtual void getArrayColumnDComplexV(Array< DComplex > *dataPtr)
virtual void putColumnSliceuIntV(const Slicer &ns, const Array< uInt > *dataPtr)
virtual void getScalarColumnCellsfloatV(const RefRows &rownrs, Vector< float > *dataPtr)
String: the storage and methods of handling collections of characters.
Definition: String.h:223
virtual void putSliceDComplexV(uInt rownr, const Slicer &ns, const Array< DComplex > *dataPtr)
void putBlockV(uInt rownr, uInt nrmax, const void *dataPtr)
Put nrmax scalars from the given row on.
virtual void putColumnSliceComplexV(const Slicer &ns, const Array< Complex > *dataPtr)
virtual void getSliceBoolV(uInt rownr, const Slicer &ns, Array< Bool > *dataPtr)
Get the array value in the given row.
virtual void getScalarColumnuIntV(Vector< uInt > *dataPtr)
virtual void putScalarColumnuCharV(const Vector< uChar > *dataPtr)
virtual void getColumnSlicefloatV(const Slicer &ns, Array< float > *dataPtr)
virtual void putArrayColumnBoolV(const Array< Bool > *dataPtr)
Put the array values into the entire column.
virtual void putColumnSliceBoolV(const Slicer &ns, const Array< Bool > *dataPtr)
Put the array values into the entire column.
virtual void putBlockuShortV(uInt rownr, uInt nrmax, const uShort *dataPtr)
virtual uInt getBlockuShortV(uInt rownr, uInt nrmax, uShort *dataPtr)
virtual void putBlockuIntV(uInt rownr, uInt nrmax, const uInt *dataPtr)
Base table column storage manager class.
Definition: StManColumn.h:102
virtual void putScalarColumnuShortV(const Vector< uShort > *dataPtr)
virtual void putArrayColumnuIntV(const Array< uInt > *dataPtr)
virtual void getScalarColumnInt64V(Vector< Int64 > *dataPtr)
int dtype_p
The data type of the column.
Definition: StManColumn.h:821
virtual void putArrayIntV(uInt rownr, const Array< Int > *dataPtr)
virtual void putScalarColumnIntV(const Vector< Int > *dataPtr)
virtual void putSlicedoubleV(uInt rownr, const Slicer &ns, const Array< double > *dataPtr)
virtual void getScalarColumnCellsdoubleV(const RefRows &rownrs, Vector< double > *dataPtr)
virtual void getScalarColumnCellsBoolV(const RefRows &rownrs, Vector< Bool > *dataPtr)
Get the scalar values in some cells of the column.
virtual void getArrayColumnCellsShortV(const RefRows &rownrs, Array< Short > *dataPtr)
virtual void getArrayColumnCellsfloatV(const RefRows &rownrs, Array< float > *dataPtr)
virtual void getColumnSliceCellsfloatV(const RefRows &rownrs, const Slicer &ns, Array< float > *dataPtr)
virtual void putArrayuShortV(uInt rownr, const Array< uShort > *dataPtr)
virtual void putSliceuShortV(uInt rownr, const Slicer &ns, const Array< uShort > *dataPtr)
virtual void getColumnSliceInt64V(const Slicer &ns, Array< Int64 > *dataPtr)
virtual void putScalarColumnCellsIntV(const RefRows &rownrs, const Vector< Int > *dataPtr)
virtual void getColumnSliceuIntV(const Slicer &ns, Array< uInt > *dataPtr)
virtual void putArrayColumnCellsfloatV(const RefRows &rownrs, const Array< float > *dataPtr)
unsigned int uInt
Definition: aipstype.h:51
virtual void putColumnSliceCellsInt64V(const RefRows &rownrs, const Slicer &ns, const Array< Int64 > *dataPtr)
void getArrayColumnV(void *dataPtr)
Get all array values in the column.
virtual void getSliceuCharV(uInt rownr, const Slicer &ns, Array< uChar > *dataPtr)
unsigned short uShort
Definition: aipstype.h:49
virtual void putArraydoubleV(uInt rownr, const Array< double > *dataPtr)
virtual void getArrayColumnuShortV(Array< uShort > *dataPtr)
virtual void putArrayColumndoubleV(const Array< double > *dataPtr)
void putScalarColumnV(const void *dataPtr)
Put all scalar values in the column.
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42