9 #ifndef __MLDATA_HDF5_FILE_H__
10 #define __MLDATA_HDF5_FILE_H__
14 #if defined(HAVE_HDF5) && defined( HAVE_CURL)
23 template <
class ST>
class SGString;
24 template <
class ST>
class SGSparseVector;
32 #define IGNORE_IN_CLASSLIST
45 CMLDataHDF5File(
char* fname,
46 const char* name=NULL,
47 const char* url_prefix=
"http://mldata.org/repository/data/download/");
50 virtual ~CMLDataHDF5File();
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);
218 virtual void get_matrix(int8_t*&, int32_t&, int32_t&)
230 virtual void set_int8_matrix(
const int8_t*, int32_t, int32_t)
242 virtual void set_vector(
const int8_t*, int32_t)
246 virtual void set_vector(
const uint8_t*, int32_t)
250 virtual void set_vector(
const char*, int32_t)
254 virtual void set_vector(
const int16_t*, int32_t)
258 virtual void set_vector(
const int32_t*, int32_t)
262 virtual void set_vector(
const uint32_t*, int32_t)
266 virtual void set_vector(
const float32_t*, int32_t)
270 virtual void set_vector(
const float64_t*, int32_t){
273 virtual void set_vector(
const floatmax_t*, int32_t)
277 virtual void set_vector(
const uint16_t*, int32_t)
281 virtual void set_vector(
const int64_t*, int32_t)
285 virtual void set_vector(
const uint64_t*, int32_t)
289 virtual void set_matrix(
const uint8_t*, int32_t, int32_t)
293 virtual void set_matrix(
const int8_t*, int32_t, int32_t)
297 virtual void set_matrix(
const char*, int32_t, int32_t)
301 virtual void set_matrix(
const int32_t*, int32_t, int32_t)
305 virtual void set_matrix(
const uint32_t*, int32_t, int32_t)
309 virtual void set_matrix(
const int64_t*, int32_t, int32_t)
313 virtual void set_matrix(
const uint64_t*, int32_t, int32_t)
317 virtual void set_matrix(
const float32_t*, int32_t, int32_t)
321 virtual void set_matrix(
const float64_t*, int32_t, int32_t)
325 virtual void set_matrix(
const floatmax_t*, int32_t, int32_t)
329 virtual void set_matrix(
const int16_t*, int32_t, int32_t)
333 virtual void set_matrix(
const uint16_t*, int32_t, int32_t)
442 virtual const char* get_name()
const {
return "HDF5File"; }
446 void get_boolean_type();
456 hid_t get_compatible_type(H5T_class_t t_class,
457 const TSGDataType* datatype);
466 void get_dims(hid_t dataset, int32_t*& dims, int32_t& ndims, int64_t& total_elements);
469 void create_group_hierarchy();
484 #endif // HAVE_CURL && HAVE_HDF5
485 #endif //__HDF5_FILE_H__