Mercurial > hg > octave-nkf
diff src/ov-cell.cc @ 9892:ac69e6f4b33d
Add HDF5-1.8 compatibility while maintaining compatibility with HDF5-1.6 versions
author | Kacper Kowalik <xarthisius.kk@gmail.com> |
---|---|
date | Tue, 01 Dec 2009 00:49:07 +0100 |
parents | b3089dba88bf |
children | 83bb2a78c07d |
line wrap: on
line diff
--- a/src/ov-cell.cc +++ b/src/ov-cell.cc @@ -1034,7 +1034,11 @@ hsize_t rank = dv.length (); hid_t space_hid = -1, data_hid = -1, size_hid = -1; +#if HAVE_HDF5_18 + data_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Gcreate (loc_id, name, 0); +#endif if (data_hid < 0) return false; @@ -1056,8 +1060,13 @@ for (hsize_t i = 0; i < rank; i++) hdims[i] = dv(rank-i-1); +#if HAVE_HDF5_18 + size_hid = H5Dcreate (data_hid, "dims", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else size_hid = H5Dcreate (data_hid, "dims", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (size_hid < 0) { H5Sclose (space_hid); @@ -1117,12 +1126,20 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t group_id = H5Gopen (loc_id, name, H5P_DEFAULT); +#else hid_t group_id = H5Gopen (loc_id, name); +#endif if (group_id < 0) return false; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (group_id, "dims", H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (group_id, "dims"); +#endif hid_t space_hid = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_hid); if (rank != 1) @@ -1166,7 +1183,11 @@ int current_item = 0; hsize_t num_obj = 0; +#if HAVE_HDF5_18 + group_id = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_id = H5Gopen (loc_id, name); +#endif H5Gget_num_objs (group_id, &num_obj); H5Gclose (group_id); @@ -1174,7 +1195,7 @@ { if (current_item >= static_cast<int> (num_obj)) - retval2 = -1; + retval2 = -1; else retval2 = H5Giterate (loc_id, name, ¤t_item, hdf5_read_next_data, &dsub);