00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #if !defined(GASPARFILEIO_HPP)
00013 #define GASPARFILEIO_HPP
00014
00015
00016 #include "mpi.h"
00017 #include "hdf5.h"
00018 #include "gasparFile.hpp"
00019 #include "hdfFile.hpp"
00020 #include "gtypes.h"
00021 #include <iostream.h>
00022 #include <string.h>
00023
00024 class GasparFileIO{
00025
00026 public:
00027
00028
00029 GBOOL openFile(GasparFile* inFile, const FILE_ACCESS accessIn);
00030 GBOOL openHDF(const char* fileNameIn, const FILE_ACCESS accessIn, IO_TYPE fType = COLLECTIVE_IO, IO_TYPE dType = INDEPENDENT_IO,
00031 MPI_Comm commIn = MPI_COMM_WORLD);
00032 GBOOL closeFile();
00033
00034 protected:
00035
00036
00037
00038 enum DATA_TYPE {FAIL, SEVECTOR, SEMATRIX};
00039 static const char* DTYPE_META_NAME;
00040
00041
00042
00043 GasparFileIO(){}
00044 GasparFile* getFile(){ return file; }
00045 void setFile(GasparFile* fileIn){ file = fileIn; }
00046 GBOOL isOpen() const { return openStatus; }
00047 void setOpenStatus(GBOOL statusIn){ openStatus = statusIn; }
00048
00049 private:
00050
00051
00052 GBOOL openStatus;
00053 GasparFile* file;
00054 static const char* THIS;
00055 };
00056 #endif