Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

gasparFile.hpp

Go to the documentation of this file.
00001 //************************************************************************************//
00002 // Module       : gasparFile.hpp
00003 // Date         : 6/11/02 (RMP)
00004 // Copyright    : 2002-2006 Copyright University Corporation for Atmospheric
00005 //                Research
00006 // Description  : Base class encapsulating the methods and data associated with
00007 //                a Gaspar file.
00008 // Derived From : none.
00009 // Modifications:
00010 //************************************************************************************//
00011 
00012 #if !defined(GASPARFILE_HPP)
00013 #define GASPARFILE_HPP
00014 
00015 #include "mpi.h"
00016 #include "gtypes.h"
00017 #include "hdf5.h"
00018 #include <iostream.h>
00019 
00020 class GasparFile{
00021 
00022 public:
00023 
00024   //public methods:
00025   virtual ~GasparFile(){}
00026   virtual GBOOL close() = 0;
00027   virtual GBOOL open(FILE_ACCESS accessIn, ISUB fileNestDepth = FILE_DEPTH_DEFAULT) = 0;
00028   virtual GBOOL openCreate(GBOOL overWriteIn, ISUB fileNestDepth = FILE_DEPTH_DEFAULT) = 0;
00029   virtual GBOOL openGroup(const char* groupName) = 0;
00030   virtual GBOOL createGroup(const char* groupName, GUSHORT  hint = GROUP_HINT) = 0;
00031   virtual GBOOL closeGroup() = 0;
00032   virtual GBOOL up() = 0;
00033   virtual GBOOL top() = 0;
00034   virtual GBOOL writeMeta(const char* metaName, HDFID location, GDOUBLE meta) = 0;
00035   virtual GBOOL writeMeta(const char* metaName, HDFID location, GDOUBLE *meta, GSHORT  len) = 0;
00036   virtual GBOOL writeMeta(const char* metaName, HDFID location, ISUB meta) = 0;
00037   virtual GBOOL readMeta(const char* metaName, HDFID location, GDOUBLE& meta) = 0;
00038   virtual GBOOL readMeta(const char* metaName, HDFID location, ISUB& meta) = 0;
00039   virtual GBOOL writeVector(const char* dataName, const GDOUBLE* data, ISUB dataSize) = 0;
00040   virtual GBOOL writeVector(const char* dataName, const ISUB* data, ISUB dataSize) = 0;
00041   virtual GBOOL readVector(const char* dataName, GDOUBLE*& data, ISUB& dataSize) = 0;
00042   virtual GBOOL readVector(const char* dataName, ISUB*& data, ISUB& dataSize) = 0;
00043   virtual GBOOL writeMatrix(const char* dataName, GDOUBLE* data, ISUB n1, ISUB n2) = 0;
00044   virtual GBOOL readMatrix(const char* dataName, GDOUBLE*& data, ISUB& n1, ISUB& n2) = 0;
00045   GBOOL isOpen() const { return openStatus; }
00046   const char* getFileName() const { return fileName; }
00047   MPI_Comm getHDFComm() const { return hdfComm; }
00048   MPI_Comm getMPIComm() const { return mpiComm; }
00049   FILE_ACCESS getFileAccess(){ return fileAccess; }
00050   
00051 
00052 protected:
00053 
00054   //protected methods:
00055   GBOOL setFileName(const char* fileNameIn);
00056   void setOpenStatus(GBOOL openStatusIn){ openStatus = openStatusIn; }
00057   void setFileAccess(const FILE_ACCESS accessIn){ fileAccess = accessIn; }
00058   GBOOL setComms(MPI_Comm parentComm, ISUB** procLists, ISUB nLists, ISUB* listSizes);
00059   GBOOL setComms(MPI_Comm commIn);
00060 
00061   //protected data:
00062   static const ISUB FILE_DEPTH_DEFAULT;
00063   static const char* VSIZE_META_NAME;
00064   static const char* MDIM_1_NAME;
00065   static const char* MDIM_2_NAME;
00066   enum DATA_OPERATION { CREATE, XFER }; 
00067   static const GUSHORT  GROUP_HINT;          //Default total size hint (in bytes) for all objects to be
00068                                             //...be included in a particular group
00069 
00070 private:
00071 
00072   //private data:
00073   const char* fileName;
00074   GBOOL openStatus;
00075   FILE_ACCESS fileAccess;
00076   MPI_Comm mpiComm, hdfComm;
00077   static const char* THIS;
00078 
00079 };
00080 
00081 #endif

Generated on Wed Dec 21 16:00:48 2005 for Geophysics & Astrophysics Spectral Element Adaptive Refinement (GASpAR) 2D Code by  doxygen 1.4.4