00001 #ifndef _MY__XdmfWriter_
00002 #define _MY_XdmfWriter_
00003 #include "hdf5reader.h"
00004 #include <ext/hash_map>
00005 #include "globals.h"
00006 #include "stringhashfun.h"
00007 #include "xmlwriter.h"
00012 class XdmfWriter
00013 {
00014
00015 struct comp
00016 {
00017 bool operator()(std::string s1, std::string s2) const
00018 {
00019 return atof(s1.c_str()) < atof(s2.c_str());;
00020 }
00021 };
00022
00023
00024 private:
00025 HDF5Reader h5Reader;
00026 protected:
00027
00028
00029
00030 typedef std::map<std::string,StringList,comp> TimexDataSets;
00031
00032
00033 typedef __gnu_cxx::hash_map<std::string,TimexDataSets,StringHashFun,struct eqstr> MeshxTimexDataSets;
00034
00035 MeshxTimexDataSets m_map;
00036
00037 void printData();
00038 void write_grid(std::ofstream &out,std::string tria);
00039 void write_grid_info(xmlwriter &out,std::string tria);
00040 void write_grid_reference(xmlwriter &out,std::string gridName,unsigned infoNumber);
00041 void write_temporal_grid_collection(xmlwriter &out,std::string tria);
00042 void write_dataset(xmlwriter &out,std::string dataset,std::string datasetName);
00043 void write_time_list(xmlwriter &out,StringList times);
00044 void write_time(xmlwriter &xml,std::string times);
00045 public:
00046
00047 XdmfWriter();
00048 void writeXdmf(std::string hdf5FileName);
00049 ~XdmfWriter(){}
00050
00051 };
00052
00053 #endif