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_STARRAIPSIO_H
00029 #define TABLES_STARRAIPSIO_H
00030
00031
00032 #include <casacore/casa/aips.h>
00033 #include <casacore/tables/DataMan/StManAipsIO.h>
00034 #include <casacore/casa/Arrays/IPosition.h>
00035
00036 namespace casacore {
00037
00038
00039 class AipsIO;
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
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 class StManColumnArrayAipsIO : public StManColumnAipsIO
00089 {
00090 public:
00091
00092
00093 StManColumnArrayAipsIO (StManAipsIO*, int dataType);
00094
00095
00096 ~StManColumnArrayAipsIO();
00097
00098
00099 Bool canAccessSlice (Bool& reask) const;
00100
00101
00102 Bool canAccessArrayColumn (Bool& reask) const;
00103
00104
00105 void setShapeColumn (const IPosition& shape);
00106
00107
00108
00109 void addRow (uInt newNrrow, uInt oldNrrow);
00110
00111
00112
00113 uInt ndim (uInt rownr);
00114
00115
00116
00117 IPosition shape (uInt rownr);
00118
00119
00120
00121
00122
00123 void getArrayBoolV (uInt rownr, Array<Bool>* dataPtr);
00124 void getArrayuCharV (uInt rownr, Array<uChar>* dataPtr);
00125 void getArrayShortV (uInt rownr, Array<Short>* dataPtr);
00126 void getArrayuShortV (uInt rownr, Array<uShort>* dataPtr);
00127 void getArrayIntV (uInt rownr, Array<Int>* dataPtr);
00128 void getArrayuIntV (uInt rownr, Array<uInt>* dataPtr);
00129 void getArrayfloatV (uInt rownr, Array<float>* dataPtr);
00130 void getArraydoubleV (uInt rownr, Array<double>* dataPtr);
00131 void getArrayComplexV (uInt rownr, Array<Complex>* dataPtr);
00132 void getArrayDComplexV (uInt rownr, Array<DComplex>* dataPtr);
00133 void getArrayStringV (uInt rownr, Array<String>* dataPtr);
00134
00135
00136
00137
00138
00139
00140 void putArrayBoolV (uInt rownr, const Array<Bool>* dataPtr);
00141 void putArrayuCharV (uInt rownr, const Array<uChar>* dataPtr);
00142 void putArrayShortV (uInt rownr, const Array<Short>* dataPtr);
00143 void putArrayuShortV (uInt rownr, const Array<uShort>* dataPtr);
00144 void putArrayIntV (uInt rownr, const Array<Int>* dataPtr);
00145 void putArrayuIntV (uInt rownr, const Array<uInt>* dataPtr);
00146 void putArrayfloatV (uInt rownr, const Array<float>* dataPtr);
00147 void putArraydoubleV (uInt rownr, const Array<double>* dataPtr);
00148 void putArrayComplexV (uInt rownr, const Array<Complex>* dataPtr);
00149 void putArrayDComplexV (uInt rownr, const Array<DComplex>* dataPtr);
00150 void putArrayStringV (uInt rownr, const Array<String>* dataPtr);
00151
00152
00153
00154
00155
00156
00157 void getSliceBoolV (uInt rownr, const Slicer&, Array<Bool>* dataPtr);
00158 void getSliceuCharV (uInt rownr, const Slicer&, Array<uChar>* dataPtr);
00159 void getSliceShortV (uInt rownr, const Slicer&, Array<Short>* dataPtr);
00160 void getSliceuShortV (uInt rownr, const Slicer&, Array<uShort>* dataPtr);
00161 void getSliceIntV (uInt rownr, const Slicer&, Array<Int>* dataPtr);
00162 void getSliceuIntV (uInt rownr, const Slicer&, Array<uInt>* dataPtr);
00163 void getSlicefloatV (uInt rownr, const Slicer&, Array<float>* dataPtr);
00164 void getSlicedoubleV (uInt rownr, const Slicer&, Array<double>* dataPtr);
00165 void getSliceComplexV (uInt rownr, const Slicer&, Array<Complex>* dataPtr);
00166 void getSliceDComplexV (uInt rownr, const Slicer&, Array<DComplex>* dataPtr);
00167 void getSliceStringV (uInt rownr, const Slicer&, Array<String>* dataPtr);
00168
00169
00170
00171
00172
00173
00174 void putSliceBoolV (uInt rownr, const Slicer&,
00175 const Array<Bool>* dataPtr);
00176 void putSliceuCharV (uInt rownr, const Slicer&,
00177 const Array<uChar>* dataPtr);
00178 void putSliceShortV (uInt rownr, const Slicer&,
00179 const Array<Short>* dataPtr);
00180 void putSliceuShortV (uInt rownr, const Slicer&,
00181 const Array<uShort>* dataPtr);
00182 void putSliceIntV (uInt rownr, const Slicer&,
00183 const Array<Int>* dataPtr);
00184 void putSliceuIntV (uInt rownr, const Slicer&,
00185 const Array<uInt>* dataPtr);
00186 void putSlicefloatV (uInt rownr, const Slicer&,
00187 const Array<float>* dataPtr);
00188 void putSlicedoubleV (uInt rownr, const Slicer&,
00189 const Array<double>* dataPtr);
00190 void putSliceComplexV (uInt rownr, const Slicer&,
00191 const Array<Complex>* dataPtr);
00192 void putSliceDComplexV (uInt rownr, const Slicer&,
00193 const Array<DComplex>* dataPtr);
00194 void putSliceStringV (uInt rownr, const Slicer&,
00195 const Array<String>* dataPtr);
00196
00197
00198
00199
00200
00201
00202 void getArrayColumnBoolV (Array<Bool>* dataPtr);
00203 void getArrayColumnuCharV (Array<uChar>* dataPtr);
00204 void getArrayColumnShortV (Array<Short>* dataPtr);
00205 void getArrayColumnuShortV (Array<uShort>* dataPtr);
00206 void getArrayColumnIntV (Array<Int>* dataPtr);
00207 void getArrayColumnuIntV (Array<uInt>* dataPtr);
00208 void getArrayColumnfloatV (Array<float>* dataPtr);
00209 void getArrayColumndoubleV (Array<double>* dataPtr);
00210 void getArrayColumnComplexV (Array<Complex>* dataPtr);
00211 void getArrayColumnDComplexV (Array<DComplex>* dataPtr);
00212 void getArrayColumnStringV (Array<String>* dataPtr);
00213
00214
00215
00216
00217
00218
00219 void putArrayColumnBoolV (const Array<Bool>* dataPtr);
00220 void putArrayColumnuCharV (const Array<uChar>* dataPtr);
00221 void putArrayColumnShortV (const Array<Short>* dataPtr);
00222 void putArrayColumnuShortV (const Array<uShort>* dataPtr);
00223 void putArrayColumnIntV (const Array<Int>* dataPtr);
00224 void putArrayColumnuIntV (const Array<uInt>* dataPtr);
00225 void putArrayColumnfloatV (const Array<float>* dataPtr);
00226 void putArrayColumndoubleV (const Array<double>* dataPtr);
00227 void putArrayColumnComplexV (const Array<Complex>* dataPtr);
00228 void putArrayColumnDComplexV (const Array<DComplex>* dataPtr);
00229 void putArrayColumnStringV (const Array<String>* dataPtr);
00230
00231
00232
00233 void remove (uInt index);
00234
00235
00236
00237
00238 void putFile (uInt nrval, AipsIO&);
00239
00240
00241
00242
00243 void getFile (uInt nrval, AipsIO&);
00244
00245
00246 Bool ok() const;
00247
00248 private:
00249
00250 int dtypeArr_p;
00251
00252 IPosition shape_p;
00253
00254 uInt nrelem_p;
00255
00256
00257 void deleteArray (uInt index);
00258
00259
00260
00261 void putData (void* datap, uInt nrval, AipsIO&);
00262
00263
00264
00265
00266 void getData (void* datap, uInt index, uInt nrval, AipsIO&, uInt version);
00267
00268
00269 StManColumnArrayAipsIO (const StManColumnArrayAipsIO&);
00270
00271
00272 StManColumnArrayAipsIO& operator= (const StManColumnArrayAipsIO&);
00273 };
00274
00275
00276
00277
00278 }
00279
00280 #endif