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, &current_item,
 			      hdf5_read_next_data, &dsub);