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 OBITOTF_H
00029 #define OBITOTF_H
00030
00031 #include "ObitData.h"
00032 #include "ObitOTFDesc.h"
00033 #include "ObitOTFSel.h"
00034 #include "ObitOTFArrayGeom.h"
00035 #include "ObitTableList.h"
00036
00037
00107
00109 typedef struct {
00110 #include "ObitOTFDef.h"
00111 } ObitOTF;
00112
00113
00119 #define ObitOTFUnref(in) ObitUnref (in)
00120
00126 #define ObitOTFRef(in) ObitRef (in)
00127
00134 #define ObitOTFIsA(in) ObitIsA (in, ObitOTFGetClass())
00135
00145 #define ObitOTFSetFITS(in,nsamp,disk,file,err) G_STMT_START{ \
00146 in->info->dim[0]=1; in->info->dim[1]=1; in->info->dim[2]=1; \
00147 in->info->dim[3]=1; in->info->dim[4]=1; \
00148 in->info->work[0] = OBIT_IO_FITS; \
00149 in->info->work[1] = nsamp; in->info->work[2]= disk; \
00150 ObitInfoListPut (in->info, "FileType", OBIT_int, \
00151 in->info->dim, (gpointer)&in->info->work[0], err);\
00152 ObitInfoListPut (in->info, "nRecPIO", OBIT_int, \
00153 in->info->dim, (gpointer)&in->info->work[1], err);\
00154 ObitInfoListPut (in->info, "IOBy", OBIT_int, in->info->dim, \
00155 (gpointer)&in->info->work[1], err); \
00156 in->info->dim[0] = 1; \
00157 ObitInfoListPut (in->info, "Disk", OBIT_int, \
00158 in->info->dim, (gpointer)&in->info->work[2], err); \
00159 in->info->dim[0] = strlen(file); \
00160 ObitInfoListPut (in->info, "FileName", OBIT_string, \
00161 in->info->dim, (gpointer)file, err); \
00162 }G_STMT_END
00163
00164
00166 void ObitOTFClassInit (void);
00167
00169 ObitOTF* newObitOTF (gchar* name);
00170
00172 ObitOTF* newObitOTFScratch (ObitOTF *in, ObitErr *err);
00174 typedef ObitOTF* (*newObitOTFScratchFP) (ObitOTF *in, ObitErr *err);
00175
00177 void ObitOTFFullInstantiate (ObitOTF *in, gboolean exist, ObitErr *err);
00178 typedef void (*ObitOTFFullInstantiateFP) (ObitOTF *in, gboolean exist,
00179 ObitErr *err);
00180
00182 gconstpointer ObitOTFGetClass (void);
00183
00185 void ObitOTFRename (ObitOTF *in, ObitErr *err);
00186
00188 void ObitIOOTFFITSRename (ObitIO *in, ObitInfoList *info, ObitErr *err);
00189
00191 ObitOTF* ObitOTFZap (ObitOTF *in, ObitErr *err);
00192
00194 ObitOTF* ObitOTFCopy (ObitOTF *in, ObitOTF *out,
00195 ObitErr *err);
00196
00198 ObitOTF* ObitOTFAver (ObitOTF *in, ObitOTF *out, ObitErr *err);
00199
00201 void ObitOTFClone (ObitOTF *in, ObitOTF *out, ObitErr *err);
00202
00204 gboolean ObitOTFSame (ObitOTF *in1, ObitOTF *in2, ObitErr *err );
00205 typedef gboolean (*ObitOTFSameFP) (ObitOTF *in1, ObitOTF *in2,
00206 ObitErr *err);
00207
00209 ObitIOCode ObitOTFConcat (ObitOTF *in, ObitOTF *out, ObitErr *err);
00210
00212 ObitIOCode ObitOTFOpen (ObitOTF *in, ObitIOAccess access,
00213 ObitErr *err);
00214
00216 ObitIOCode ObitOTFClose (ObitOTF *in, ObitErr *err);
00217
00219 ObitIOCode ObitOTFIOSet (ObitOTF *in, ObitErr *err);
00220 typedef ObitIOCode (*ObitOTFIOSetFP) (ObitOTF *in, ObitErr *err);
00221
00223 ObitIOCode ObitOTFRead (ObitOTF *in, gfloat *data, ObitErr *err);
00224
00226 ObitIOCode ObitOTFReadSelect (ObitOTF *in, gfloat *data, ObitErr *err);
00227
00229 ObitIOCode ObitOTFWrite (ObitOTF *in, gfloat *data, ObitErr *err);
00230
00232 ObitTable* newObitOTFTable (ObitOTF *in, ObitIOAccess access,
00233 gchar *tabType, glong *tabver, ObitErr *err);
00234 typedef ObitTable* (*newObitOTFTableFP) (ObitOTF *in, ObitIOAccess access,
00235 gchar *tabType, glong *tabver,
00236 ObitErr *err);
00237
00239 ObitIOCode ObitOTFZapTable (ObitOTF *in, gchar *tabType, glong tabVer,
00240 ObitErr *err);
00241 typedef ObitIOCode (*ObitOTFZapTableFP) (ObitOTF *in, gchar *tabType,
00242 glong tabVer, ObitErr *err);
00243
00245 ObitIOCode ObitOTFCopyTables (ObitOTF *in, ObitOTF *out, gchar **exclude,
00246 gchar **include, ObitErr *err);
00247 typedef ObitIOCode (*ObitOTFCopyTablesFP) (ObitOTF *in, ObitOTF *out,
00248 gchar **exclude, gchar **include,
00249 ObitErr *err);
00250
00252 ObitIOCode ObitOTFUpdateTables (ObitOTF *in, ObitErr *err);
00253 typedef ObitIOCode (*ObitOTFUpdateTablesFP) (ObitOTF *in, ObitErr *err);
00254
00256 void ObitOTFWriteKeyword (ObitOTF *in,
00257 gchar* name, ObitInfoType type, gint32 *dim,
00258 gconstpointer data, ObitErr *err);
00260 void ObitOTFReadKeyword (ObitOTF *in,
00261 gchar* name, ObitInfoType *type, gint32 *dim,
00262 gpointer data, ObitErr *err);
00264 glong ObitOTFNumRecScan (ObitOTF *inOTF);
00265
00271 typedef struct {
00272 #include "ObitOTFClassDef.h"
00273 } ObitOTFClassInfo;
00274
00275 #endif