10 #ifndef __HDF5_FILE_H__
11 #define __HDF5_FILE_H__
25 template <
class ST>
class SGString;
26 template <
class ST>
class SGSparseVector;
34 #define IGNORE_IN_CLASSLIST
47 CHDF5File(
char* fname,
char rw=
'r',
const char* name=NULL);
59 virtual void get_vector(
bool*& vector, int32_t& len);
60 virtual void get_vector(int8_t*& vector, int32_t& len);
61 virtual void get_vector(uint8_t*& vector, int32_t& len);
62 virtual void get_vector(
char*& vector, int32_t& len);
63 virtual void get_vector(int32_t*& vector, int32_t& len);
64 virtual void get_vector(uint32_t*& vector, int32_t& len);
65 virtual void get_vector(
float64_t*& vector, int32_t& len);
66 virtual void get_vector(
float32_t*& vector, int32_t& len);
67 virtual void get_vector(
floatmax_t*& vector, int32_t& len);
68 virtual void get_vector(int16_t*& vector, int32_t& len);
69 virtual void get_vector(uint16_t*& vector, int32_t& len);
70 virtual void get_vector(int64_t*& vector, int32_t& len);
71 virtual void get_vector(uint64_t*& vector, int32_t& len);
82 virtual void get_matrix(
83 bool*& matrix, int32_t& num_feat, int32_t& num_vec);
84 virtual void get_matrix(
85 uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
86 virtual void get_matrix(
87 char*& matrix, int32_t& num_feat, int32_t& num_vec);
88 virtual void get_matrix(
89 int32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
90 virtual void get_matrix(
91 uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
92 virtual void get_matrix(
93 int64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
94 virtual void get_matrix(
95 uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
96 virtual void get_matrix(
97 float32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
98 virtual void get_matrix(
99 float64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
100 virtual void get_matrix(
101 floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec);
102 virtual void get_matrix(
103 int16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
104 virtual void get_matrix(
105 uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
116 virtual void get_ndarray(
117 uint8_t*& array, int32_t*& dims, int32_t& num_dims);
118 virtual void get_ndarray(
119 char*& array, int32_t*& dims, int32_t& num_dims);
120 virtual void get_ndarray(
121 int32_t*& array, int32_t*& dims, int32_t& num_dims);
122 virtual void get_ndarray(
123 float32_t*& array, int32_t*& dims, int32_t& num_dims);
124 virtual void get_ndarray(
125 float64_t*& array, int32_t*& dims, int32_t& num_dims);
126 virtual void get_ndarray(
127 int16_t*& array, int32_t*& dims, int32_t& num_dims);
128 virtual void get_ndarray(
129 uint16_t*& array, int32_t*& dims, int32_t& num_dims);
140 virtual void get_sparse_matrix(
141 SGSparseVector<bool>*& matrix, int32_t& num_feat, int32_t& num_vec);
142 virtual void get_sparse_matrix(
143 SGSparseVector<int8_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
144 virtual void get_sparse_matrix(
145 SGSparseVector<uint8_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
146 virtual void get_sparse_matrix(
147 SGSparseVector<char>*& matrix, int32_t& num_feat, int32_t& num_vec);
148 virtual void get_sparse_matrix(
149 SGSparseVector<int32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
150 virtual void get_sparse_matrix(
151 SGSparseVector<uint32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
152 virtual void get_sparse_matrix(
153 SGSparseVector<int64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
154 virtual void get_sparse_matrix(
155 SGSparseVector<uint64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
156 virtual void get_sparse_matrix(
157 SGSparseVector<int16_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
158 virtual void get_sparse_matrix(
159 SGSparseVector<uint16_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
160 virtual void get_sparse_matrix(
161 SGSparseVector<float32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
162 virtual void get_sparse_matrix(
163 SGSparseVector<float64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
164 virtual void get_sparse_matrix(
165 SGSparseVector<floatmax_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
177 virtual void get_string_list(
178 SGString<bool>*& strings, int32_t& num_str,
179 int32_t& max_string_len);
180 virtual void get_string_list(
181 SGString<int8_t>*& strings, int32_t& num_str,
182 int32_t& max_string_len);
183 virtual void get_string_list(
184 SGString<uint8_t>*& strings, int32_t& num_str,
185 int32_t& max_string_len);
186 virtual void get_string_list(
187 SGString<char>*& strings, int32_t& num_str,
188 int32_t& max_string_len);
189 virtual void get_string_list(
190 SGString<int32_t>*& strings, int32_t& num_str,
191 int32_t& max_string_len);
192 virtual void get_string_list(
193 SGString<uint32_t>*& strings, int32_t& num_str,
194 int32_t& max_string_len);
195 virtual void get_string_list(
196 SGString<int16_t>*& strings, int32_t& num_str,
197 int32_t& max_string_len);
198 virtual void get_string_list(
199 SGString<uint16_t>*& strings, int32_t& num_str,
200 int32_t& max_string_len);
201 virtual void get_string_list(
202 SGString<int64_t>*& strings, int32_t& num_str,
203 int32_t& max_string_len);
204 virtual void get_string_list(
205 SGString<uint64_t>*& strings, int32_t& num_str,
206 int32_t& max_string_len);
207 virtual void get_string_list(
208 SGString<float32_t>*& strings, int32_t& num_str,
209 int32_t& max_string_len);
210 virtual void get_string_list(
211 SGString<float64_t>*& strings, int32_t& num_str,
212 int32_t& max_string_len);
213 virtual void get_string_list(
214 SGString<floatmax_t>*& strings, int32_t& num_str,
215 int32_t& max_string_len);
225 virtual void set_vector(
const bool* vector, int32_t len);
226 virtual void set_vector(
const int8_t* vector, int32_t len);
227 virtual void set_vector(
const uint8_t* vector, int32_t len);
228 virtual void set_vector(
const char* vector, int32_t len);
229 virtual void set_vector(
const int32_t* vector, int32_t len);
230 virtual void set_vector(
const uint32_t* vector, int32_t len);
231 virtual void set_vector(
const float32_t* vector, int32_t len);
232 virtual void set_vector(
const float64_t* vector, int32_t len);
233 virtual void set_vector(
const floatmax_t* vector, int32_t len);
234 virtual void set_vector(
const int16_t* vector, int32_t len);
235 virtual void set_vector(
const uint16_t* vector, int32_t len);
236 virtual void set_vector(
const int64_t* vector, int32_t len);
237 virtual void set_vector(
const uint64_t* vector, int32_t len);
248 virtual void set_matrix(
249 const bool* matrix, int32_t num_feat, int32_t num_vec);
250 virtual void set_matrix(
251 const int8_t* matrix, int32_t num_feat, int32_t num_vec);
252 virtual void set_matrix(
253 const uint8_t* matrix, int32_t num_feat, int32_t num_vec);
254 virtual void set_matrix(
255 const char* matrix, int32_t num_feat, int32_t num_vec);
256 virtual void set_matrix(
257 const int32_t* matrix, int32_t num_feat, int32_t num_vec);
258 virtual void set_matrix(
259 const uint32_t* matrix, int32_t num_feat, int32_t num_vec);
260 virtual void set_matrix(
261 const int64_t* matrix, int32_t num_feat, int32_t num_vec);
262 virtual void set_matrix(
263 const uint64_t* matrix, int32_t num_feat, int32_t num_vec);
264 virtual void set_matrix(
265 const float32_t* matrix, int32_t num_feat, int32_t num_vec);
266 virtual void set_matrix(
267 const float64_t* matrix, int32_t num_feat, int32_t num_vec);
268 virtual void set_matrix(
269 const floatmax_t* matrix, int32_t num_feat, int32_t num_vec);
270 virtual void set_matrix(
271 const int16_t* matrix, int32_t num_feat, int32_t num_vec);
272 virtual void set_matrix(
273 const uint16_t* matrix, int32_t num_feat, int32_t num_vec);
283 virtual void set_sparse_matrix(
284 const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec);
285 virtual void set_sparse_matrix(
286 const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec);
287 virtual void set_sparse_matrix(
288 const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec);
289 virtual void set_sparse_matrix(
290 const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec);
291 virtual void set_sparse_matrix(
292 const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec);
293 virtual void set_sparse_matrix(
294 const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec);
295 virtual void set_sparse_matrix(
296 const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec);
297 virtual void set_sparse_matrix(
298 const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec);
299 virtual void set_sparse_matrix(
300 const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec);
301 virtual void set_sparse_matrix(
302 const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec);
303 virtual void set_sparse_matrix(
304 const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec);
305 virtual void set_sparse_matrix(
306 const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec);
307 virtual void set_sparse_matrix(
308 const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec);
320 virtual void set_string_list(
321 const SGString<bool>* strings, int32_t num_str);
322 virtual void set_string_list(
323 const SGString<int8_t>* strings, int32_t num_str);
324 virtual void set_string_list(
325 const SGString<uint8_t>* strings, int32_t num_str);
326 virtual void set_string_list(
327 const SGString<char>* strings, int32_t num_str);
328 virtual void set_string_list(
329 const SGString<int32_t>* strings, int32_t num_str);
330 virtual void set_string_list(
331 const SGString<uint32_t>* strings, int32_t num_str);
332 virtual void set_string_list(
333 const SGString<int16_t>* strings, int32_t num_str);
334 virtual void set_string_list(
335 const SGString<uint16_t>* strings, int32_t num_str);
336 virtual void set_string_list(
337 const SGString<int64_t>* strings, int32_t num_str);
338 virtual void set_string_list(
339 const SGString<uint64_t>* strings, int32_t num_str);
340 virtual void set_string_list(
341 const SGString<float32_t>* strings, int32_t num_str);
342 virtual void set_string_list(
343 const SGString<float64_t>* strings, int32_t num_str);
344 virtual void set_string_list(
345 const SGString<floatmax_t>* strings, int32_t num_str);
348 virtual void get_matrix(int8_t*&, int32_t&, int32_t&)
360 virtual void set_int8_matrix(
const int8_t*, int32_t, int32_t)
375 virtual const char* get_name()
const {
return "HDF5File"; }
379 void get_boolean_type();
389 hid_t get_compatible_type(H5T_class_t t_class,
390 const TSGDataType* datatype);
399 void get_dims(hid_t dataset, int32_t*& dims, int32_t& ndims, int64_t& total_elements);
402 void create_group_hierarchy();
412 #endif //__HDF5_FILE_H__