@@ -24,7 +24,6 @@ herr_t alien_visitor(hid_t did, unsigned dim, hid_t dsid,
2424 void * visitor_data )
2525{
2626 char name1 [STR_LEN ];
27- H5G_stat_t statbuf ;
2827 HDF5_OBJID_T * objid = visitor_data ;
2928
3029 /* This should get "/var1", the name of the dataset that the scale
@@ -33,28 +32,42 @@ herr_t alien_visitor(hid_t did, unsigned dim, hid_t dsid,
3332 if (strcmp (& name1 [1 ], VAR1_NAME )) ERR ;
3433
3534 /* Get more info on the dimscale object.*/
35+ #if H5_VERSION_GE (1 ,12 ,0 )
36+ H5O_info2_t statbuf ;
37+ if (H5Oget_info3 (dsid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
38+ objid -> fileno = statbuf .fileno ;
39+ objid -> token = statbuf .token ;
40+ #else
41+ H5G_stat_t statbuf ;
3642 if (H5Gget_objinfo (dsid , "." , 1 , & statbuf ) < 0 ) ERR ;
3743 objid -> fileno [0 ] = statbuf .fileno [0 ];
3844 objid -> objno [0 ] = statbuf .objno [0 ];
3945 objid -> fileno [1 ] = statbuf .fileno [1 ];
4046 objid -> objno [1 ] = statbuf .objno [1 ];
47+ #endif
4148
4249 return 0 ;
4350}
4451
4552herr_t alien_visitor2 (hid_t did , unsigned dim , hid_t dsid , void * visitor_data )
4653{
47- H5G_stat_t statbuf ;
4854 HDF5_OBJID_T * objid = visitor_data ;
4955
5056 /* Get obj id of the dimscale object. THis will be used later to
5157 * match dimensions to dimscales. */
58+ #if H5_VERSION_GE (1 ,12 ,0 )
59+ H5O_info2_t statbuf ;
60+ if (H5Oget_info3 (dsid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
61+ objid -> fileno = statbuf .fileno ;
62+ objid -> token = statbuf .token ;
63+ #else
64+ H5G_stat_t statbuf ;
5265 if (H5Gget_objinfo (dsid , "." , 1 , & statbuf ) < 0 ) ERR ;
5366 objid -> fileno [0 ] = statbuf .fileno [0 ];
5467 objid -> objno [0 ] = statbuf .objno [0 ];
5568 objid -> fileno [1 ] = statbuf .fileno [1 ];
5669 objid -> objno [1 ] = statbuf .objno [1 ];
57-
70+ #endif
5871 return 0 ;
5972}
6073
@@ -112,7 +125,11 @@ main()
112125 char label [STR_LEN + 1 ];
113126 int num_scales ;
114127 hsize_t dims [1 ], maxdims [1 ];
128+ #if H5_VERSION_GE (1 ,12 ,0 )
129+ H5O_info2_t statbuf ;
130+ #else
115131 H5G_stat_t statbuf ;
132+ #endif
116133 HDF5_OBJID_T dimscale_obj , vars_dimscale_obj ;
117134
118135 /* Open the file. */
@@ -153,11 +170,17 @@ main()
153170
154171 /* fileno and objno uniquely identify an object and a
155172 * HDF5 file. */
173+ #if H5_VERSION_GE (1 ,12 ,0 )
174+ if (H5Oget_info3 (datasetid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
175+ dimscale_obj .fileno = statbuf .fileno ;
176+ dimscale_obj .token = statbuf .token ;
177+ #else
156178 if (H5Gget_objinfo (datasetid , "." , 1 , & statbuf ) < 0 ) ERR ;
157179 dimscale_obj .fileno [0 ] = statbuf .fileno [0 ];
158180 dimscale_obj .objno [0 ] = statbuf .objno [0 ];
159181 dimscale_obj .fileno [1 ] = statbuf .fileno [1 ];
160182 dimscale_obj .objno [1 ] = statbuf .objno [1 ];
183+ #endif
161184 }
162185 else
163186 {
@@ -169,11 +192,19 @@ main()
169192 /* Go through all dimscales for this var and learn about them. */
170193 if (H5DSiterate_scales (datasetid , 0 , NULL , alien_visitor ,
171194 & vars_dimscale_obj ) < 0 ) ERR ;
195+ #if H5_VERSION_GE (1 ,12 ,0 )
196+ int token_cmp ;
197+ if (H5Otoken_cmp (datasetid ,
198+ & vars_dimscale_obj .token ,
199+ & dimscale_obj .token , & token_cmp ) < 0 ) ERR ;
200+ if (vars_dimscale_obj .fileno != dimscale_obj .fileno ||
201+ token_cmp != 0 ) ERR ;
202+ #else
172203 if (vars_dimscale_obj .fileno [0 ] != dimscale_obj .fileno [0 ] ||
173204 vars_dimscale_obj .objno [0 ] != dimscale_obj .objno [0 ] ||
174205 vars_dimscale_obj .fileno [1 ] != dimscale_obj .fileno [1 ] ||
175206 vars_dimscale_obj .objno [1 ] != dimscale_obj .objno [1 ]) ERR ;
176-
207+ #endif
177208 /* There's also a label for dimension 0. */
178209 if (H5DSget_label (datasetid , 0 , label , STR_LEN ) < 0 ) ERR ;
179210 }
@@ -259,7 +290,11 @@ main()
259290 htri_t is_scale ;
260291 int num_scales ;
261292 hsize_t dims [NDIMS2 ], maxdims [NDIMS2 ];
293+ #if H5_VERSION_GE (1 ,12 ,0 )
294+ H5O_info2_t statbuf ;
295+ #else
262296 H5G_stat_t statbuf ;
297+ #endif
263298 HDF5_OBJID_T dimscale_obj [2 ], vars_dimscale_obj [2 ];
264299 int dimscale_cnt = 0 ;
265300 int d , ndims ;
@@ -297,11 +332,17 @@ main()
297332 {
298333 /* fileno and objno uniquely identify an object and a
299334 * HDF5 file. */
335+ #if H5_VERSION_GE (1 ,12 ,0 )
336+ if (H5Oget_info3 (datasetid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
337+ dimscale_obj [dimscale_cnt ].fileno = statbuf .fileno ;
338+ dimscale_obj [dimscale_cnt ].token = statbuf .token ;
339+ #else
300340 if (H5Gget_objinfo (datasetid , "." , 1 , & statbuf ) < 0 ) ERR ;
301341 dimscale_obj [dimscale_cnt ].fileno [0 ] = statbuf .fileno [0 ];
302342 dimscale_obj [dimscale_cnt ].objno [0 ] = statbuf .objno [0 ];
303343 dimscale_obj [dimscale_cnt ].fileno [1 ] = statbuf .fileno [1 ];
304344 dimscale_obj [dimscale_cnt ].objno [1 ] = statbuf .objno [1 ];
345+ #endif
305346 dimscale_cnt ++ ;
306347 }
307348 else
@@ -322,10 +363,19 @@ main()
322363 /* Verify that the object ids passed from the
323364 * alien_visitor2 function match the ones we found
324365 * for the lat and lon datasets. */
366+ #if H5_VERSION_GE (1 ,12 ,0 )
367+ int token_cmp ;
368+ if (H5Otoken_cmp (datasetid ,
369+ & vars_dimscale_obj [d ].token ,
370+ & dimscale_obj [d ].token , & token_cmp ) < 0 ) ERR ;
371+ if (vars_dimscale_obj [d ].fileno != dimscale_obj [d ].fileno ||
372+ token_cmp != 0 ) ERR ;
373+ #else
325374 if (vars_dimscale_obj [d ].fileno [0 ] != dimscale_obj [d ].fileno [0 ] ||
326375 vars_dimscale_obj [d ].objno [0 ] != dimscale_obj [d ].objno [0 ]) ERR ;
327376 if (vars_dimscale_obj [d ].fileno [1 ] != dimscale_obj [d ].fileno [1 ] ||
328377 vars_dimscale_obj [d ].objno [1 ] != dimscale_obj [d ].objno [1 ]) ERR ;
378+ #endif
329379 }
330380 }
331381 if (H5Dclose (datasetid ) < 0 ) ERR ;
@@ -363,7 +413,11 @@ main()
363413 char obj_name [STR_LEN + 1 ];
364414 htri_t is_scale ;
365415 int num_scales ;
416+ #if H5_VERSION_GE (1 ,12 ,0 )
417+ H5O_info2_t statbuf ;
418+ #else
366419 H5G_stat_t statbuf ;
420+ #endif
367421 HDF5_OBJID_T dimscale_obj [2 ], vars_dimscale_obj [2 ];
368422 int dimscale_cnt = 0 ;
369423 int d , ndims ;
@@ -476,11 +530,17 @@ main()
476530 {
477531 /* fileno and objno uniquely identify an object and a
478532 * HDF5 file. */
533+ #if H5_VERSION_GE (1 ,12 ,0 )
534+ if (H5Oget_info3 (datasetid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
535+ dimscale_obj [dimscale_cnt ].fileno = statbuf .fileno ;
536+ dimscale_obj [dimscale_cnt ].token = statbuf .token ;
537+ #else
479538 if (H5Gget_objinfo (datasetid , "." , 1 , & statbuf ) < 0 ) ERR ;
480539 dimscale_obj [dimscale_cnt ].fileno [0 ] = statbuf .fileno [0 ];
481540 dimscale_obj [dimscale_cnt ].objno [0 ] = statbuf .objno [0 ];
482541 dimscale_obj [dimscale_cnt ].fileno [1 ] = statbuf .fileno [1 ];
483542 dimscale_obj [dimscale_cnt ].objno [1 ] = statbuf .objno [1 ];
543+ #endif
484544 dimscale_cnt ++ ;
485545 }
486546 else
@@ -501,10 +561,19 @@ main()
501561 /* Verify that the object ids passed from the
502562 * alien_visitor2 function match the ones we found
503563 * for the lat and lon datasets. */
564+ #if H5_VERSION_GE (1 ,12 ,0 )
565+ int token_cmp ;
566+ if (H5Otoken_cmp (datasetid ,
567+ & vars_dimscale_obj [d ].token ,
568+ & dimscale_obj [d ].token , & token_cmp ) < 0 ) ERR ;
569+ if (vars_dimscale_obj [d ].fileno != dimscale_obj [d ].fileno ||
570+ token_cmp != 0 ) ERR ;
571+ #else
504572 if (vars_dimscale_obj [d ].fileno [0 ] != dimscale_obj [d ].fileno [0 ] ||
505573 vars_dimscale_obj [d ].objno [0 ] != dimscale_obj [d ].objno [0 ]) ERR ;
506574 if (vars_dimscale_obj [d ].fileno [1 ] != dimscale_obj [d ].fileno [1 ] ||
507575 vars_dimscale_obj [d ].objno [1 ] != dimscale_obj [d ].objno [1 ]) ERR ;
576+ #endif
508577 }
509578
510579 }
@@ -666,7 +735,11 @@ main()
666735 htri_t is_scale ;
667736 int num_scales ;
668737 hsize_t maxdims [DIMS_3 ];
738+ #if H5_VERSION_GE (1 ,12 ,0 )
739+ H5O_info2_t statbuf ;
740+ #else
669741 H5G_stat_t statbuf ;
742+ #endif
670743 HDF5_OBJID_T dimscale_obj [NUM_DIMSCALES1 ], vars_dimscale_obj [NUM_DIMSCALES1 ];
671744 int dimscale_cnt = 0 ;
672745 int d , ndims ;
@@ -777,11 +850,17 @@ main()
777850 {
778851 /* fileno and objno uniquely identify an object and a
779852 * HDF5 file. */
853+ #if H5_VERSION_GE (1 ,12 ,0 )
854+ if (H5Oget_info3 (datasetid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
855+ dimscale_obj [dimscale_cnt ].fileno = statbuf .fileno ;
856+ dimscale_obj [dimscale_cnt ].token = statbuf .token ;
857+ #else
780858 if (H5Gget_objinfo (datasetid , "." , 1 , & statbuf ) < 0 ) ERR ;
781859 dimscale_obj [dimscale_cnt ].fileno [0 ] = statbuf .fileno [0 ];
782860 dimscale_obj [dimscale_cnt ].objno [0 ] = statbuf .objno [0 ];
783861 dimscale_obj [dimscale_cnt ].fileno [1 ] = statbuf .fileno [1 ];
784862 dimscale_obj [dimscale_cnt ].objno [1 ] = statbuf .objno [1 ];
863+ #endif
785864 dimscale_cnt ++ ;
786865 }
787866 else
@@ -802,10 +881,19 @@ main()
802881 /* Verify that the object ids passed from the
803882 * alien_visitor2 function match the ones we found
804883 * for the lat and lon datasets. */
884+ #if H5_VERSION_GE (1 ,12 ,0 )
885+ int token_cmp ;
886+ if (H5Otoken_cmp (datasetid ,
887+ & vars_dimscale_obj [d ].token ,
888+ & dimscale_obj [d ].token , & token_cmp ) < 0 ) ERR ;
889+ if (vars_dimscale_obj [d ].fileno != dimscale_obj [d ].fileno ||
890+ token_cmp != 0 ) ERR ;
891+ #else
805892 if (vars_dimscale_obj [d ].fileno [0 ] != dimscale_obj [d ].fileno [0 ] ||
806893 vars_dimscale_obj [d ].objno [0 ] != dimscale_obj [d ].objno [0 ]) ERR ;
807894 if (vars_dimscale_obj [d ].fileno [1 ] != dimscale_obj [d ].fileno [1 ] ||
808895 vars_dimscale_obj [d ].objno [1 ] != dimscale_obj [d ].objno [1 ]) ERR ;
896+ #endif
809897 }
810898 }
811899 if (H5Dclose (datasetid ) < 0 ) ERR ;
@@ -851,7 +939,11 @@ main()
851939 htri_t is_scale ;
852940 int num_scales ;
853941 hsize_t maxdims [DIMS_3 ];
942+ #if H5_VERSION_GE (1 ,12 ,0 )
943+ H5O_info2_t statbuf ;
944+ #else
854945 H5G_stat_t statbuf ;
946+ #endif
855947 HDF5_OBJID_T dimscale_obj [NUM_DIMSCALES2 ], vars_dimscale_obj [NUM_DIMSCALES2 ];
856948 int dimscale_cnt = 0 ;
857949 int d , ndims ;
@@ -962,11 +1054,17 @@ main()
9621054 {
9631055 /* fileno and objno uniquely identify an object and a
9641056 * HDF5 file. */
1057+ #if H5_VERSION_GE (1 ,12 ,0 )
1058+ if (H5Oget_info3 (datasetid , & statbuf , H5O_INFO_BASIC ) < 0 ) ERR ;
1059+ dimscale_obj [dimscale_cnt ].fileno = statbuf .fileno ;
1060+ dimscale_obj [dimscale_cnt ].token = statbuf .token ;
1061+ #else
9651062 if (H5Gget_objinfo (datasetid , "." , 1 , & statbuf ) < 0 ) ERR ;
9661063 dimscale_obj [dimscale_cnt ].fileno [0 ] = statbuf .fileno [0 ];
9671064 dimscale_obj [dimscale_cnt ].objno [0 ] = statbuf .objno [0 ];
9681065 dimscale_obj [dimscale_cnt ].fileno [1 ] = statbuf .fileno [1 ];
9691066 dimscale_obj [dimscale_cnt ].objno [1 ] = statbuf .objno [1 ];
1067+ #endif
9701068 dimscale_cnt ++ ;
9711069 }
9721070 else
@@ -987,10 +1085,19 @@ main()
9871085 /* Verify that the object ids passed from the
9881086 * alien_visitor2 function match the ones we found
9891087 * for the lat and lon datasets. */
1088+ #if H5_VERSION_GE (1 ,12 ,0 )
1089+ int token_cmp ;
1090+ if (H5Otoken_cmp (datasetid ,
1091+ & vars_dimscale_obj [d ].token ,
1092+ & dimscale_obj [d ].token , & token_cmp ) < 0 ) ERR ;
1093+ if (vars_dimscale_obj [d ].fileno != dimscale_obj [d ].fileno ||
1094+ token_cmp != 0 ) ERR ;
1095+ #else
9901096 if (vars_dimscale_obj [d ].fileno [0 ] != dimscale_obj [d ].fileno [0 ] ||
9911097 vars_dimscale_obj [d ].objno [0 ] != dimscale_obj [d ].objno [0 ]) ERR ;
9921098 if (vars_dimscale_obj [d ].fileno [1 ] != dimscale_obj [d ].fileno [1 ] ||
9931099 vars_dimscale_obj [d ].objno [1 ] != dimscale_obj [d ].objno [1 ]) ERR ;
1100+ #endif
9941101 }
9951102 }
9961103 if (H5Dclose (datasetid ) < 0 ) ERR ;
0 commit comments