Proto
Proto_HDF5.H
1 #pragma once
2 #ifndef PROTO_HDF5_H
3 #define PROTO_HDF5_H
4 #include "Proto_LevelBoxData.H"
5 #include "hdf5.h"
6 
7 namespace Proto
8 {
9  class HDF5Handler
10  {
11  public:
12 
14  inline HDF5Handler();
15 
17 
32  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
33  inline void readLevel(LevelBoxData<T, C, MEM, CTR>& a_data,
34  std::string a_filename,
35  Args... a_params);
36 
38 
49  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
50  inline void writeLevel(
51  std::vector<std::string> a_varnames,
52  array<double, DIM> a_dx,
53  const LevelBoxData<T, C, MEM, CTR>& a_data,
54  std::string a_filename,
55  Args... a_params);
56 
58 
61  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
62  inline void writeLevel(
63  std::vector<std::string> a_varnames,
64  double a_dx,
65  const LevelBoxData<T, C, MEM, CTR>& a_data,
66  std::string a_filename,
67  Args... a_params);
68 
70 
73  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
74  inline void writeLevel(
75  array<double, DIM> a_dx,
76  const LevelBoxData<T, C, MEM, CTR>& a_data,
77  std::string a_filename,
78  Args... a_params);
79 
81 
84  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
85  inline void writeLevel(
86  double a_dx,
87  const LevelBoxData<T, C, MEM, CTR>& a_data,
88  std::string a_filename,
89  Args... a_params);
90 
92 
95  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
96  inline void writeLevel(
97  std::vector<std::string> a_varnames,
98  const LevelBoxData<T, C, MEM, CTR>& a_data,
99  std::string a_filename,
100  Args... a_params);
101 
103 
107  template<typename T, unsigned int C, MemType MEM, unsigned int CTR, typename... Args>
108  inline void writeLevel(
109  const LevelBoxData<T, C, MEM, CTR>& a_data,
110  std::string a_filename,
111  Args... a_params);
112 
114 
134  template<typename T, unsigned int C, MemType MEM, typename... Args>
135  inline void writePatch(
136  std::vector<std::string> a_varnames,
137  array<double, DIM> a_dx,
138  const BoxData<T, C, MEM>& a_data,
139  std::string a_filename,
140  Args... a_params);
142 
145  template<typename T, unsigned int C, MemType MEM, typename... Args>
146  inline void writePatch(
147  std::vector<std::string> a_varnames,
148  const BoxData<T, C, MEM>& a_data,
149  std::string a_filename,
150  Args... a_params);
151 
153 
157  template<typename T, unsigned int C, MemType MEM, typename... Args>
158  inline void writePatch(const BoxData<T, C, MEM>& a_data,
159  std::string a_filename,
160  Args... a_params);
161  private:
162 
163  hid_t H5T_PROTO_POINT;
164  hid_t H5T_PROTO_BOX;
165  hid_t H5T_PROTO_STRING;
166 
167  template<typename T, unsigned int C, MemType MEM, unsigned int CTR>
168  inline void addLevel(hid_t* a_file,
169  const LevelBoxData<T, C, MEM, CTR>& a_data,
170  array<double, DIM>& a_dx0,
171  int a_level);
172 
173  template<typename T>
174  inline void getH5DataType(hid_t* a_type) {}
175 
176  }; // end class HDF5Handler
177 #include "implem/Proto_HDF5Implem.H"
178 } // end namespace Proto
179 #endif //end of include guard
HDF5Handler()
Default Constructor.
Definition: Proto_HDF5.H:2
Definition: Proto_HDF5.H:9
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:458
void writePatch(std::vector< std::string > a_varnames, array< double, DIM > a_dx, const BoxData< T, C, MEM > &a_data, std::string a_filename, Args... a_params)
Write Box Data.
Definition: Proto_HDF5.H:522
Level Box Data.
Definition: Proto_LevelBoxData.H:26
void readLevel(LevelBoxData< T, C, MEM, CTR > &a_data, std::string a_filename, Args... a_params)
Read Level Box Data.
Definition: Proto_HDF5.H:35
Definition: Proto_Box.H:11
void writeLevel(std::vector< std::string > a_varnames, array< double, DIM > a_dx, const LevelBoxData< T, C, MEM, CTR > &a_data, std::string a_filename, Args... a_params)
Write Level Box Data.
Definition: Proto_HDF5.H:221