00001 #ifndef _MY_HDF5Reader_ 00002 #define _MY_HDF5Reader_ 00003 00004 #include <hdf5.h> 00005 00006 #include <string> 00007 #include <vector> 00008 #include "globals.h" 00013 class HDF5Reader 00014 { 00015 private: 00016 std::string _fileName; 00017 protected: 00018 hid_t openGroup(std::string groupName); 00019 hid_t openId(hid_t rootId,std::string path,hsize_t type); 00020 void closeId(hid_t id); 00021 std::string printType(hsize_t type); 00022 00023 hid_t m_file; 00024 public: 00025 HDF5Reader(); 00026 ~HDF5Reader(); 00027 void open(std::string strFileName); 00028 void close(); 00029 std::string getAttribute(std::string datasetName,std::string attributeName); 00030 std::vector<std::string> getMeshList(); 00031 std::vector<std::string> getFieldList(); 00032 std::vector<std::string> ls(std::string path); 00033 std::string getDataSetTriangulation(std::string dataset); 00034 VecIndex getDataSetDim(std::string path); 00035 std::string readAtt(std::string strPath,std::string attName,bool mustexist=true); 00036 std::string getFileName(){return _fileName;} 00037 00038 }; 00039 00040 #endif