Main Page | Class List | Directories | File List | Class Members | File Members

ObitOTF.h

Go to the documentation of this file.
00001 /* $Id: ObitOTF.h,v 1.7 2006/03/30 18:40:25 bcotton Exp $ */
00002 /*--------------------------------------------------------------------*/
00003 /*;  Copyright (C) 2003-2006                                          */
00004 /*;  Associated Universities, Inc. Washington DC, USA.                */
00005 /*;                                                                   */
00006 /*;  This program is free software; you can redistribute it and/or    */
00007 /*;  modify it under the terms of the GNU General Public License as   */
00008 /*;  published by the Free Software Foundation; either version 2 of   */
00009 /*;  the License, or (at your option) any later version.              */
00010 /*;                                                                   */
00011 /*;  This program is distributed in the hope that it will be useful,  */
00012 /*;  but WITHOUT ANY WARRANTY; without even the implied warranty of   */
00013 /*;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    */
00014 /*;  GNU General Public License for more details.                     */
00015 /*;                                                                   */
00016 /*;  You should have received a copy of the GNU General Public        */
00017 /*;  License along with this program; if not, write to the Free       */
00018 /*;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,     */
00019 /*;  MA 02139, USA.                                                   */
00020 /*;                                                                   */
00021 /*;  Correspondence this software should be addressed as follows:     */
00022 /*;         Internet email: bcotton@nrao.edu.                         */
00023 /*;         Postal address: William Cotton                            */
00024 /*;                         National Radio Astronomy Observatory      */
00025 /*;                         520 Edgemont Road                         */
00026 /*;                         Charlottesville, VA 22903-2475 USA        */
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 /*-------- Obit: Software for the recently deceased ------------------*/
00107 /*--------------Class definitions-------------------------------------*/
00109 typedef struct {
00110 #include "ObitOTFDef.h"   /* this class definition */
00111 } ObitOTF;
00112 
00113 /*----------------- Macroes ---------------------------*/
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 /*---------------Public functions---------------------------*/
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 /*----------- ClassInfo Structure -----------------------------------*/
00271 typedef struct  {
00272 #include "ObitOTFClassDef.h"
00273 } ObitOTFClassInfo; 
00274 
00275 #endif /* OBITOTF_H */ 

Generated on Mon Sep 3 20:43:53 2007 by  doxygen 1.3.9.1