From 3db40827da29243b88ade3c3f174f3f5e6cd0622 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 4 Oct 2007 13:32:47 -0500 Subject: [svn-r14184] Description: Move H5Aopen_idx() into deprecated symbols section, replacing all internal usage with H5Aopen_by_idx(). Add simple regression test for H5Aopen_idx(). Tested on: FreeBSD/32 6.2 (duty) in debug mode FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Mac OS X/32 10.4.10 (amazon) in debug mode --- c++/src/H5Object.cpp | 4 ++-- examples/h5_attribute.c | 2 +- fortran/src/H5Af.c | 8 ++++---- src/H5Adeprec.c | 6 +++++- src/H5Apublic.h | 2 +- test/objcopy.c | 6 +++--- test/tattr.c | 41 +++++++++++++++++++++++++---------------- tools/h5repack/h5repack_copy.c | 2 +- tools/h5repack/h5repack_refs.c | 2 +- tools/lib/h5diff_attr.c | 2 +- 10 files changed, 44 insertions(+), 31 deletions(-) diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp index b3b2982..e298153 100644 --- a/c++/src/H5Object.cpp +++ b/c++/src/H5Object.cpp @@ -173,7 +173,7 @@ Attribute H5Object::openAttribute( const H5std_string& name ) const //-------------------------------------------------------------------------- Attribute H5Object::openAttribute( const unsigned int idx ) const { - hid_t attr_id = H5Aopen_idx( id, idx ); + hid_t attr_id = H5Aopen_by_idx(id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT); if( attr_id > 0 ) { Attribute attr( attr_id ); @@ -181,7 +181,7 @@ Attribute H5Object::openAttribute( const unsigned int idx ) const } else { - throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_idx failed"); + throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed"); } } diff --git a/examples/h5_attribute.c b/examples/h5_attribute.c index d86bbcd..93fda77 100644 --- a/examples/h5_attribute.c +++ b/examples/h5_attribute.c @@ -194,7 +194,7 @@ main (void) */ ret = H5Oget_info(dataset, ".", &oinfo, H5P_DEFAULT); for(i = 0; i < (unsigned)oinfo.num_attrs; i++) { - attr = H5Aopen_idx(dataset, i); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)i, H5P_DEFAULT, H5P_DEFAULT); atype = H5Aget_type(attr); type_class = H5Tget_class(atype); if (type_class == H5T_STRING) { diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c index 8253781..293d4c0 100644 --- a/fortran/src/H5Af.c +++ b/fortran/src/H5Af.c @@ -847,7 +847,7 @@ done: /*---------------------------------------------------------------------------- * Name: h5aopen_idx_c - * Purpose: Call H5Aopen_idx to open an attribute + * Purpose: Call H5Aopen_by_idx to open an attribute * Inputs: obj_id - object identifier * idx - attribute index ( zero based) * Outputs: attr_id - attribute identifier @@ -859,12 +859,12 @@ done: int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id) { - int_f ret_value=0; /* Return value */ + int_f ret_value = 0; /* Return value */ /* - * Call H5Aopen_idx function. + * Call H5Aopen_by_idx function. */ - if ((*attr_id = (hid_t_f)H5Aopen_idx((hid_t)*obj_id, (unsigned)*idx)) < 0) + if((*attr_id = (hid_t_f)H5Aopen_by_idx((hid_t)*obj_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)*idx, H5P_DEFAULT, H5P_DEFAULT)) < 0) HGOTO_DONE(FAIL); done: diff --git a/src/H5Adeprec.c b/src/H5Adeprec.c index 65b876e..5fb8dca 100644 --- a/src/H5Adeprec.c +++ b/src/H5Adeprec.c @@ -220,6 +220,7 @@ done: FUNC_LEAVE_API(ret_value) } /* H5Aopen_name() */ +#ifndef H5_NO_DEPRECATED_SYMBOLS /*-------------------------------------------------------------------------- NAME @@ -240,6 +241,8 @@ done: H5Aclose or resource leaks will develop. The location object may be either a group or a dataset, both of which may have any sort of attribute. + NOTE + Deprecated in favor of H5Aopen_by_idx --------------------------------------------------------------------------*/ hid_t H5Aopen_idx(hid_t loc_id, unsigned idx) @@ -274,7 +277,6 @@ done: FUNC_LEAVE_API(ret_value) } /* H5Aopen_idx() */ -#ifndef H5_NO_DEPRECATED_SYMBOLS /*-------------------------------------------------------------------------- NAME @@ -291,6 +293,8 @@ done: DESCRIPTION This function returns the number of attributes attached to a dataset or group, 'location_id'. + NOTE + Deprecated in favor of H5Oget_info --------------------------------------------------------------------------*/ int H5Aget_num_attrs(hid_t loc_id) diff --git a/src/H5Apublic.h b/src/H5Apublic.h index 76dec27..3908455 100644 --- a/src/H5Apublic.h +++ b/src/H5Apublic.h @@ -83,7 +83,6 @@ H5_DLL herr_t H5Adelete_by_idx(hid_t loc_id, const char *obj_name, H5_DLL hid_t H5Acreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t plist_id); H5_DLL hid_t H5Aopen_name(hid_t loc_id, const char *name); -H5_DLL hid_t H5Aopen_idx(hid_t loc_id, unsigned idx); /* Symbols defined for compatibility with previous versions of the HDF5 API. * @@ -102,6 +101,7 @@ typedef herr_t (*H5A_operator1_t)(hid_t location_id/*in*/, /* Function prototypes */ +H5_DLL hid_t H5Aopen_idx(hid_t loc_id, unsigned idx); H5_DLL int H5Aget_num_attrs(hid_t loc_id); H5_DLL herr_t H5Adelete1(hid_t loc_id, const char *name); H5_DLL herr_t H5Arename1(hid_t loc_id, const char *old_name, const char *new_name); diff --git a/test/objcopy.c b/test/objcopy.c index ff0e4bb..88828d4 100755 --- a/test/objcopy.c +++ b/test/objcopy.c @@ -789,7 +789,7 @@ compare_std_attributes(hid_t oid, hid_t oid2, hid_t pid) /* Check the attributes are equal */ for(i = 0; i < (unsigned)oinfo1.num_attrs; i++) { - if((aid = H5Aopen_idx(oid, i)) < 0) TEST_ERROR + if((aid = H5Aopen_by_idx(oid, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)i, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR if(H5Aget_name(aid, ATTR_NAME_LEN, attr_name) < 0) TEST_ERROR if((aid2 = H5Aopen_name(oid2, attr_name)) < 0) TEST_ERROR @@ -3945,8 +3945,8 @@ test_copy_attribute_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t fapl) /* Check if the attributes are equal */ - if((aid = H5Aopen_idx(did, 0)) < 0) TEST_ERROR - if((aid2 = H5Aopen_idx(did2, 0)) < 0) TEST_ERROR + if((aid = H5Aopen_by_idx(did, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR + if((aid2 = H5Aopen_by_idx(did2, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR if(compare_attribute(aid, aid2, H5P_DEFAULT, NULL, did) != TRUE) TEST_ERROR if(H5Aclose(aid) < 0) TEST_ERROR if(H5Aclose(aid2) < 0) TEST_ERROR diff --git a/test/tattr.c b/test/tattr.c index 53f2c21..4e3058e 100644 --- a/test/tattr.c +++ b/test/tattr.c @@ -786,8 +786,8 @@ test_attr_compound_read(hid_t fapl) VERIFY(oinfo.num_attrs, 1, "H5Oget_info"); /* Open 1st attribute for the dataset */ - attr = H5Aopen_idx(dataset, 0); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Dataspace */ space = H5Aget_space(attr); @@ -1191,8 +1191,8 @@ test_attr_mult_read(hid_t fapl) VERIFY(oinfo.num_attrs, 3, "H5Oget_info"); /* Open 1st attribute for the dataset */ - attr = H5Aopen_idx(dataset, (unsigned)0); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Dataspace */ space = H5Aget_space(attr); @@ -1244,8 +1244,8 @@ test_attr_mult_read(hid_t fapl) CHECK(ret, FAIL, "H5Aclose"); /* Open 2nd attribute for the dataset */ - attr = H5Aopen_idx(dataset, (unsigned)1); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)1, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Dataspace */ space = H5Aget_space(attr); @@ -1300,8 +1300,8 @@ test_attr_mult_read(hid_t fapl) CHECK(ret, FAIL, "H5Aclose"); /* Open 2nd attribute for the dataset */ - attr = H5Aopen_idx(dataset, (unsigned)2); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)2, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Dataspace */ space = H5Aget_space(attr); @@ -1531,8 +1531,8 @@ test_attr_delete(hid_t fapl) VERIFY(oinfo.num_attrs, 2, "H5Oget_info"); /* Open 1st attribute for the dataset */ - attr = H5Aopen_idx(dataset, 0); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Name */ name_len = H5Aget_name(attr, (size_t)ATTR_NAME_LEN,attr_name); @@ -1545,8 +1545,8 @@ test_attr_delete(hid_t fapl) CHECK(ret, FAIL, "H5Aclose"); /* Open last (formally 3rd) attribute for the dataset */ - attr = H5Aopen_idx(dataset, 1); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)1, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Name */ name_len = H5Aget_name(attr, (size_t)ATTR_NAME_LEN, attr_name); @@ -1568,8 +1568,8 @@ test_attr_delete(hid_t fapl) VERIFY(oinfo.num_attrs, 1, "H5Oget_info"); /* Open last (formally 3rd) attribute for the dataset */ - attr = H5Aopen_idx(dataset, 0); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)0, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Name */ name_len = H5Aget_name(attr, (size_t)ATTR_NAME_LEN, attr_name); @@ -1819,8 +1819,8 @@ test_attr_dense_verify(hid_t loc_id, unsigned max_attr) char check_name[ATTR_NAME_LEN]; /* Buffer for checking attribute names */ /* Open attribute */ - attr = H5Aopen_idx(loc_id, u); - CHECK(attr, FAIL, "H5Aopen_idx"); + attr = H5Aopen_by_idx(loc_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, H5P_DEFAULT, H5P_DEFAULT); + CHECK(attr, FAIL, "H5Aopen_by_idx"); /* Verify Name */ sprintf(attrname, "attr %02u", u); @@ -3307,6 +3307,15 @@ test_attr_deprec(hid_t fcpl, hid_t fapl) ret = H5Aget_num_attrs(dataset); VERIFY(ret, 1, "H5Aget_num_attrs"); + /* Open the attribute */ + attr = H5Aopen_idx(dataset, 0); + CHECK(attr, FAIL, "H5Aopen_idx"); + + /* Close attribute */ + ret = H5Aclose(attr); + CHECK(ret, FAIL, "H5Aclose"); + + /* Rename attribute */ ret = H5Arename1(dataset, "attr", "attr2"); CHECK(ret, FAIL, "H5Arename1"); diff --git a/tools/h5repack/h5repack_copy.c b/tools/h5repack/h5repack_copy.c index 5734285..677d9fd 100644 --- a/tools/h5repack/h5repack_copy.c +++ b/tools/h5repack/h5repack_copy.c @@ -919,7 +919,7 @@ int copy_attr(hid_t loc_in, buf=NULL; /* open attribute */ - if ((attr_id = H5Aopen_idx(loc_in, u))<0) + if((attr_id = H5Aopen_by_idx(loc_in, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto error; /* get name */ diff --git a/tools/h5repack/h5repack_refs.c b/tools/h5repack/h5repack_refs.c index 8ec1cfd..9a6b3ae 100644 --- a/tools/h5repack/h5repack_refs.c +++ b/tools/h5repack/h5repack_refs.c @@ -431,7 +431,7 @@ static int copy_refs_attr(hid_t loc_in, *------------------------------------------------------------------------- */ /* open attribute */ - if((attr_id = H5Aopen_idx(loc_in, u)) < 0) + if((attr_id = H5Aopen_by_idx(loc_in, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto error; /* get name */ diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index 26c93d3..d73b3c4 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -86,7 +86,7 @@ hsize_t diff_attr(hid_t loc1_id, buf2 = NULL; /* open attribute */ - if((attr1_id = H5Aopen_idx(loc1_id, u)) < 0) + if((attr1_id = H5Aopen_by_idx(loc1_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto error; /* get name */ if(H5Aget_name(attr1_id, 255, name1) < 0) -- cgit v0.12