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 OBITFILE_H
00029 #define OBITFILE_H
00030 #include <sys/types.h>
00031 #include "Obit.h"
00032 #include "ObitErr.h"
00033 #include "ObitThread.h"
00034 #include "ObitInfoList.h"
00035
00036
00055
00057 typedef off_t ObitFilePos;
00058
00059
00060
00062 typedef struct {
00063 #include "ObitFileDef.h"
00064 } ObitFile;
00065
00066
00067
00073 #define ObitFileUnref(in) ObitUnref (in)
00074
00080 #define ObitFileRef(in) ObitRef (in)
00081
00088 #define ObitFileIsA(in) ObitIsA (in, ObitFileGetClass())
00089
00090
00091
00092
00094 void ObitFileClassInit (void);
00095
00097 ObitFile* newObitFile (gchar* name);
00098
00100 gconstpointer ObitFileGetClass (void);
00101
00103 ObitFile* ObitFileZap (ObitFile *in, ObitErr *err);
00104 typedef ObitFile* (*ObitFileZapFP) (ObitFile *in, ObitErr *err);
00105
00107 void ObitFileRename (gchar *oldName, gchar *newName, ObitErr *err);
00108 typedef void (*ObitFileRenameFP) (gchar *oldName, gchar *newName, ObitErr *err);
00109
00111 ObitFile* ObitFileCopy (ObitFile *in, ObitFile *out, ObitErr *err);
00112
00114 ObitIOCode
00115 ObitFileOpen (ObitFile *in, gchar *fileName, ObitIOAccess access,
00116 ObitIOType type, glong blockSize, ObitErr *err);
00117 typedef ObitIOCode (*ObitFileOpenFP) (ObitFile *in, gchar *fileName,
00118 ObitIOAccess access,
00119 ObitIOType type, glong blockSize,
00120 ObitErr *err);
00121
00123 ObitIOCode ObitFileClose (ObitFile *in, ObitErr *err);
00124 typedef ObitIOCode (*ObitFileCloseFP) (ObitFile *in, ObitErr *err);
00125
00127 ObitIOCode ObitFileSetPos (ObitFile *in, ObitFilePos filePos, ObitErr *err);
00128 typedef ObitIOCode (*ObitFileSetPosFP) (ObitFile *in, ObitFilePos filePos,
00129 ObitErr *err);
00130
00132 ObitIOCode ObitFileEnd (ObitFile *in, ObitErr *err);
00133 typedef ObitIOCode (*ObitFileEndFP) (ObitFile *in, ObitErr *err);
00134
00136 ObitIOCode
00137 ObitFileRead (ObitFile *in, ObitFilePos filePos, glong size, gchar *buffer,
00138 ObitErr *err);
00139 typedef ObitIOCode (*ObitFileReadFP) (ObitFile *in, ObitFilePos filePos,
00140 glong size, gchar *buffer,
00141 ObitErr *err);
00142
00144 ObitIOCode
00145 ObitFileReadLine (ObitFile *in, gchar *line, gint lineMax, ObitErr *err);
00146 typedef ObitIOCode (*ObitFileReadLineFP) (ObitFile *in, gchar *line, gint lineMax, ObitErr *err);
00147
00149 ObitIOCode
00150 ObitFileWrite (ObitFile *in, ObitFilePos filePos, glong size, gchar *buffer,
00151 ObitErr *err);
00152 typedef ObitIOCode (*ObitFileWriteFP) (ObitFile *in, ObitFilePos filePos,
00153 glong size, gchar *buffer,
00154 ObitErr *err);
00155
00157 ObitIOCode
00158 ObitFileWriteLine (ObitFile *in, gchar *line, ObitErr *err);
00159 typedef ObitIOCode (*ObitFileWriteLineFP) (ObitFile *in, gchar *line, ObitErr *err);
00160
00162 ObitIOCode
00163 ObitFilePad (ObitFile *in, glong padTo, gchar *buffer, glong bsize,
00164 ObitErr *err);
00165 typedef ObitIOCode (*ObitFilePadFP) (ObitFile *in, glong padTo,
00166 gchar *buffer,
00167 glong bsize, ObitErr *err);
00168
00170 ObitIOCode
00171 ObitFilePadFile (ObitFile *in, glong blksize, ObitErr *err);
00172 typedef ObitIOCode (*ObitFilePadFileFP) (ObitFile *in, glong blksize,
00173 ObitErr *err);
00174
00176 ObitIOCode ObitFileFlush (ObitFile *in, ObitErr *err);
00177 typedef ObitIOCode (*ObitFileFlushFP) (ObitFile *in, ObitErr *err);
00178
00180 gboolean ObitFileExist (gchar *fileName, ObitErr *err);
00181 typedef gboolean (*ObitFileExistFP) (gchar *fileName, ObitErr *err);
00182
00184 ObitFilePos ObitFileSize (gchar *fileName, ObitErr *err);
00185 typedef ObitFilePos (*ObitFileSizeFP) (ObitFile *in, ObitErr *err);
00186
00188 gchar* ObitFileName (gchar *fileName);
00189 typedef gchar* (*ObitFileNameFP) (ObitFile *in);
00190
00191
00193 gboolean ObitFileErrMsg (ObitErr *err);
00194 typedef gboolean (*ObitFileErrMsgFP) (ObitErr *err);
00195
00196
00202 typedef struct {
00203 #include "ObitFileClassDef.h"
00204 } ObitFileClassInfo;
00205
00206
00207 #endif