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 OBITIO_H
00029 #define OBITIO_H
00030 #include "Obit.h"
00031 #include "ObitErr.h"
00032 #include "ObitThread.h"
00033 #include "ObitInfoList.h"
00034 #include "ObitImageDesc.h"
00035 #include "ObitUVDesc.h"
00036 #include "ObitUVCal.h"
00037
00038
00058
00060 typedef struct {
00061 #include "ObitIODef.h"
00062 } ObitIO;
00063
00064
00070 #define ObitIOUnref(in) ObitUnref (in)
00071
00077 #define ObitIORef(in) ObitRef (in)
00078
00085 #define ObitIOIsA(in) ObitIsA (in, ObitIOGetClass())
00086
00087
00088
00089
00091 void ObitIOClassInit (void);
00092
00094 ObitIO* newObitIO (gchar *name, ObitInfoList *info,
00095 ObitErr *err);
00097 typedef ObitIO* (*newObitIOFP) (gchar* name, ObitInfoList *info,
00098 ObitErr *err);
00099
00101 gconstpointer ObitIOGetClass (void);
00102
00104 gboolean ObitIOSame (ObitIO *in, ObitInfoList *in1, ObitInfoList *in2,
00105 ObitErr *err);
00106 typedef gboolean (*ObitIOSameFP) (ObitIO *in, ObitInfoList *in1,
00107 ObitInfoList *in2, ObitErr *err);
00108
00110 void ObitIORename (ObitIO *in, ObitInfoList *info, ObitErr *err);
00111 typedef void (*ObitIORenameFP) (ObitIO *in, ObitInfoList *info, ObitErr *err);
00112
00114 void ObitIOZap (ObitIO *in, ObitErr *err);
00115 typedef void (*ObitIOZapFP) (ObitIO *in, ObitErr *err);
00116
00118 ObitIO* ObitIOCopy (ObitIO *in, ObitIO *out, ObitErr *err);
00119
00121 ObitIOCode ObitIOOpen (ObitIO *in, ObitIOAccess access, ObitInfoList *info,
00122 ObitErr *err);
00123 typedef ObitIOCode (*ObitIOOpenFP) (ObitIO *in, ObitIOAccess access,
00124 ObitInfoList *info, ObitErr *err);
00125
00127 ObitIOCode ObitIOClose (ObitIO *in, ObitErr *err);
00128 typedef ObitIOCode (*ObitIOCloseFP) (ObitIO *in, ObitErr *err);
00129
00131 ObitIOCode ObitIOSet (ObitIO *in, ObitInfoList *info, ObitErr *err);
00132 typedef ObitIOCode (*ObitIOSetFP) (ObitIO *in, ObitInfoList *info,
00133 ObitErr *err);
00134
00136 ObitIOCode ObitIORead (ObitIO *in, gfloat *data, ObitErr *err);
00137 typedef ObitIOCode (*ObitIOReadFP) (ObitIO *in, gfloat *data, ObitErr *err);
00138
00140 ObitIOCode ObitIOReadRow (ObitIO *in, glong rowno, gfloat *data, ObitErr *err);
00141 typedef ObitIOCode (*ObitIOReadRowFP) (ObitIO *in, glong rowno, gfloat *data,
00142 ObitErr *err);
00143
00145 ObitIOCode ObitIOReadSelect (ObitIO *in, gfloat *data, ObitErr *err);
00146 typedef ObitIOCode (*ObitIOReadSelectFP) (ObitIO *in, gfloat *data,
00147 ObitErr *err);
00148
00150 ObitIOCode ObitIOReadRowSelect (ObitIO *in, glong rowno, gfloat *data, ObitErr *err);
00151 typedef ObitIOCode (*ObitIOReadRowSelectFP) (ObitIO *in, glong rowno, gfloat *data,
00152 ObitErr *err);
00153
00155 ObitIOCode ObitIOWrite (ObitIO *in, gfloat *data, ObitErr *err);
00156 typedef ObitIOCode (*ObitIOWriteFP) (ObitIO *in, gfloat *data, ObitErr *err);
00157
00159 ObitIOCode ObitIOWriteRow (ObitIO *in, glong rowno, gfloat *data, ObitErr *err);
00160 typedef ObitIOCode (*ObitIOWriteRowFP) (ObitIO *in, glong rowno, gfloat *data,
00161 ObitErr *err);
00162
00164 ObitIOCode ObitIOFlush (ObitIO *in, ObitErr *err);
00165 typedef ObitIOCode (*ObitIOFlushFP) (ObitIO *in, ObitErr *err);
00166
00168 ObitIOCode ObitIOReadDescriptor (ObitIO *in, ObitErr *err);
00169 typedef ObitIOCode (*ObitIOReadDescriptorFP) (ObitIO *in, ObitErr *err);
00170
00172 ObitIOCode ObitIOWriteDescriptor (ObitIO *in, ObitErr *err);
00173 typedef ObitIOCode (*ObitIOWriteDescriptorFP) (ObitIO *in, ObitErr *err);
00174
00176 void ObitIOCreateBuffer (gfloat **data, glong *size, ObitIO *in,
00177 ObitInfoList *info, ObitErr *err);
00178 typedef void (*ObitIOCreateBufferFP) (gfloat **data, glong *size, ObitIO *in,
00179 ObitInfoList *info, ObitErr *err);
00180
00182 void ObitIOFreeBuffer (gfloat *buffer);
00183 typedef void (*ObitIOFreeBufferFP) (gfloat *buffer);
00184
00187 Obit* newObitIOTable (ObitIO *in, ObitIOAccess access,
00188 gchar *tabType, glong *tabver, ObitErr *err);
00189 typedef Obit* (*newObitIOTableFP) (ObitIO *in, ObitIOAccess access,
00190 gchar *tabType, glong *tabver,
00191 ObitErr *err);
00192
00194 ObitIOCode ObitIOUpdateTables (ObitIO *in, ObitInfoList *info, ObitErr *err);
00195 typedef ObitIOCode (*ObitIOUpdateTablesFP) (ObitIO *in, ObitInfoList *info,
00196 ObitErr *err);
00197
00198
00199
00205 typedef struct {
00206 #include "ObitIOClassDef.h"
00207 } ObitIOClassInfo;
00208
00209
00210 #endif