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

ObitFile.h

Go to the documentation of this file.
00001 /* $Id: ObitFile.h,v 1.13 2007/08/31 17:24:48 bcotton Exp $        */
00002 /*--------------------------------------------------------------------*/
00003 /*;  Copyright (C) 2003-2007                                          */
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 about 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 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 /*-------- Obit: Software for the recently deceased ------------------*/
00055 /*----------------- typedefs ---------------------------*/
00057 typedef off_t ObitFilePos;
00058 /*typedef gint64 ObitFilePos;*/
00059 
00060 /*---------------Class Structure---------------------------*/
00062 typedef struct {
00063 #include "ObitFileDef.h"   /* actual definition */
00064 } ObitFile;
00065 
00066 /*----------------- Macroes ---------------------------*/
00067 
00073 #define ObitFileUnref(in) ObitUnref (in)
00074 
00080 #define ObitFileRef(in) ObitRef (in)
00081 
00088 #define ObitFileIsA(in) ObitIsA (in, ObitFileGetClass())
00089 
00090 /* Private functions are only defined in the .c file */
00091 
00092 /*---------------Public functions---------------------------*/
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 /*-------------------Class Info--------------------------*/
00202 typedef struct  {
00203 #include "ObitFileClassDef.h" /* Actual definition */
00204 } ObitFileClassInfo; 
00205 
00206 
00207 #endif /* OBITFILE_H */ 

Generated on Fri Aug 31 22:13:04 2007 for Obit by  doxygen 1.3.9.1