[svn-r14127] Description:

Move H5Gget_linkval to deprecated symbol section and replace with
H5Lget_val for internal calls.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	Solaris/32 5.10 (linew)
	Mac OS X/32 10.4.10 (amazon)
This commit is contained in:
Quincey Koziol 2007-08-29 18:37:41 -05:00
parent db3c155bf2
commit 71d6bffdd7
8 changed files with 163 additions and 172 deletions

View File

@ -416,10 +416,10 @@ H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
{
char* value_C = new char[size+1]; // temporary C-string for C API
herr_t ret_value = H5Gget_linkval( getLocId(), name, size, value_C );
herr_t ret_value = H5Lget_val( getLocId(), name, value_C, size, H5P_DEFAULT );
if( ret_value < 0 )
{
throwException("getLinkval", "H5Gget_linkval failed");
throwException("getLinkval", "H5Lget_val failed");
}
H5std_string value = H5std_string( value_C );
delete []value_C;

View File

@ -523,51 +523,46 @@ DONE:
*---------------------------------------------------------------------------*/
int_f
nh5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value )
nh5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size,
_fcd value)
{
int ret_value = -1;
hid_t c_loc_id;
char *c_name;
size_t c_namelen;
char *c_value = NULL;
size_t c_size;
herr_t c_ret_value;
/*
* Convert Fortran name to C name
*/
c_namelen = *namelen;
c_name = (char *)HD5f2cstring(name, c_namelen);
if(c_name == NULL) return ret_value;
char *c_name = NULL;
char *c_value = NULL;
int ret_value = -1;
/*
* Allocate buffer to hold name of the value
*/
if(*size) c_value = (char *)HDmalloc((size_t)*size);
if(c_value == NULL) {
HDfree(c_name);
return ret_value;
}
/*
* Convert Fortran name to C name
*/
if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen)))
goto DONE;
/*
* Call H5Gget_linkval function
*/
/*
* Allocate buffer to hold name of the value
*/
if(*size) c_value = (char *)HDmalloc((size_t)*size);
if(c_value == NULL) {
HDfree(c_name);
return ret_value;
}
c_size = (size_t)*size;
c_loc_id = (hid_t)*loc_id;
c_ret_value = H5Gget_linkval(c_loc_id, c_name, c_size, c_value);
if(c_ret_value < 0) goto DONE;
/*
* Call H5Lget_val function
*/
if(H5Lget_val((hid_t)*loc_id, c_name, c_value, (size_t)*size, H5P_DEFAULT) < 0)
goto DONE;
/*
* Convert C name to FORTRAN and place it in the given buffer
*/
HD5packFstring(c_value, _fcdtocp(value), (size_t)*size);
ret_value = 0;
/*
* Convert C name to FORTRAN and place it in the given buffer
*/
HD5packFstring(c_value, _fcdtocp(value), (size_t)*size);
ret_value = 0;
DONE:
HDfree(c_value);
HDfree(c_name);
return ret_value ;
if(c_value)
HDfree(c_value);
if(c_name)
HDfree(c_name);
return ret_value;
}
/*----------------------------------------------------------------------------

View File

@ -553,7 +553,6 @@ H5Gunlink(hid_t loc_id, const char *name)
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Gunlink() */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/*-------------------------------------------------------------------------
@ -586,6 +585,7 @@ H5Gget_linkval(hid_t loc_id, const char *name, size_t size, char *buf/*out*/)
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Gget_linkval() */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/*-------------------------------------------------------------------------

View File

@ -137,8 +137,6 @@ H5_DLL herr_t H5Gclose(hid_t group_id);
*
* Use of these functions and variables is deprecated.
*/
H5_DLL herr_t H5Gget_linkval(hid_t loc_id, const char *name, size_t size,
char *buf/*out*/);
H5_DLL ssize_t H5Gget_objname_by_idx(hid_t loc_id, hsize_t idx, char* name,
size_t size);
H5_DLL herr_t H5Gset_comment(hid_t loc_id, const char *name, const char *comment);
@ -170,6 +168,8 @@ H5_DLL herr_t H5Gmove(hid_t src_loc_id, const char *src_name,
H5_DLL herr_t H5Gmove2(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
const char *dst_name);
H5_DLL herr_t H5Gunlink(hid_t loc_id, const char *name);
H5_DLL herr_t H5Gget_linkval(hid_t loc_id, const char *name, size_t size,
char *buf/*out*/);
#endif /* H5_NO_DEPRECATED_SYMBOLS */

View File

@ -294,108 +294,109 @@ cklinks(hid_t fapl, hbool_t new_format)
/* Open the file */
h5_fixname(FILENAME[1], fapl, filename, sizeof filename);
if ((file=H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR
if((file = H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0) FAIL_STACK_ERROR
/* Hard link */
if (H5Gget_objinfo(file, "d1", TRUE, &sb1) < 0) TEST_ERROR
if (H5Gget_objinfo(file, "grp1/hard", TRUE, &sb2) < 0) TEST_ERROR
if (H5G_DATASET!=sb2.type) {
if(H5Gget_objinfo(file, "d1", TRUE, &sb1) < 0) FAIL_STACK_ERROR
if(H5Gget_objinfo(file, "grp1/hard", TRUE, &sb2) < 0) FAIL_STACK_ERROR
if(H5G_DATASET != sb2.type) {
H5_FAILED();
printf(" %d: Unexpected object type should have been a dataset\n", __LINE__);
TEST_ERROR
}
if (HDmemcmp(&sb1.objno, &sb2.objno, sizeof(sb1.objno))) {
} /* end if */
if(HDmemcmp(&sb1.objno, &sb2.objno, sizeof(sb1.objno))) {
H5_FAILED();
puts(" Hard link test failed. Link seems not to point to the ");
puts(" expected file location.");
TEST_ERROR
}
if(H5Lexists(file, "d1", H5P_DEFAULT) != TRUE) TEST_ERROR
if(H5Lexists(file, "grp1/hard", H5P_DEFAULT) != TRUE) TEST_ERROR
} /* end if */
if(H5Lexists(file, "d1", H5P_DEFAULT) != TRUE) FAIL_STACK_ERROR
if(H5Lexists(file, "grp1/hard", H5P_DEFAULT) != TRUE) FAIL_STACK_ERROR
/* Symbolic link */
if (H5Gget_objinfo(file, "grp1/soft", TRUE, &sb2) < 0) TEST_ERROR
if (H5G_DATASET!=sb2.type) {
if(H5Gget_objinfo(file, "grp1/soft", TRUE, &sb2) < 0) FAIL_STACK_ERROR
if(H5G_DATASET != sb2.type) {
H5_FAILED();
printf(" %d: Unexpected object type should have been a dataset\n", __LINE__);
TEST_ERROR
}
if (HDmemcmp(&sb1.objno, &sb2.objno, sizeof(sb1.objno))) {
} /* end if */
if(HDmemcmp(&sb1.objno, &sb2.objno, sizeof(sb1.objno))) {
H5_FAILED();
puts(" Soft link test failed. Link seems not to point to the ");
puts(" expected file location.");
TEST_ERROR
}
if (H5Lget_val(file, "grp1/soft", linkval, sizeof linkval, H5P_DEFAULT) < 0) TEST_ERROR
if (HDstrcmp(linkval, "/d1")) {
} /* end if */
if(H5Lget_val(file, "grp1/soft", linkval, sizeof linkval, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(HDstrcmp(linkval, "/d1")) {
H5_FAILED();
puts(" Soft link test failed. Wrong link value");
TEST_ERROR
}
if(H5Lexists(file, "grp1/soft", H5P_DEFAULT) != TRUE) TEST_ERROR
} /* end if */
if(H5Lexists(file, "grp1/soft", H5P_DEFAULT) != TRUE) FAIL_STACK_ERROR
/* Dangling link */
H5E_BEGIN_TRY {
status = H5Gget_objinfo(file, "grp1/dangle", TRUE, &sb2);
} H5E_END_TRY;
if (status>=0) {
if(status >= 0) {
H5_FAILED();
puts(" H5Gget_objinfo() should have failed for a dangling link.");
TEST_ERROR
}
if (H5Gget_objinfo(file, "grp1/dangle", FALSE, &sb2) < 0) TEST_ERROR
if (H5G_LINK!=sb2.type) {
} /* end if */
if(H5Gget_objinfo(file, "grp1/dangle", FALSE, &sb2) < 0) FAIL_STACK_ERROR
if(H5G_LINK != sb2.type) {
H5_FAILED();
printf(" %d: Unexpected object type should have been a symbolic link\n", __LINE__);
TEST_ERROR
}
if (H5Gget_linkval(file, "grp1/dangle", sizeof linkval, linkval) < 0) {
} /* end if */
if(H5Lget_val(file, "grp1/dangle", linkval, sizeof linkval, H5P_DEFAULT) < 0) {
H5_FAILED();
printf(" %d: Can't retrieve link value\n", __LINE__);
TEST_ERROR
}
if (HDstrcmp(linkval, "foobar")) {
} /* end if */
if(HDstrcmp(linkval, "foobar")) {
H5_FAILED();
puts(" Dangling link test failed. Wrong link value");
TEST_ERROR
}
if(H5Lexists(file, "grp1/dangle", H5P_DEFAULT) != TRUE) TEST_ERROR
} /* end if */
if(H5Lexists(file, "grp1/dangle", H5P_DEFAULT) != TRUE) FAIL_STACK_ERROR
/* Recursive link */
H5E_BEGIN_TRY {
status = H5Gget_objinfo(file, "grp1/recursive", TRUE, &sb2);
} H5E_END_TRY;
if (status>=0) {
if(status >= 0) {
H5_FAILED();
puts(" H5Gget_objinfo() should have failed for a recursive link.");
TEST_ERROR
}
if (H5Gget_objinfo(file, "grp1/recursive", FALSE, &sb2) < 0) TEST_ERROR
if (H5G_LINK!=sb2.type) {
} /* end if */
if(H5Gget_objinfo(file, "grp1/recursive", FALSE, &sb2) < 0) FAIL_STACK_ERROR
if(H5G_LINK != sb2.type) {
H5_FAILED();
printf(" %d: Unexpected object type should have been a symbolic link\n", __LINE__);
TEST_ERROR
}
if (H5Gget_linkval(file, "grp1/recursive", sizeof linkval, linkval) < 0) {
} /* end if */
if(H5Lget_val(file, "grp1/recursive", linkval, sizeof linkval, H5P_DEFAULT) < 0) {
H5_FAILED();
printf(" %d: Can't retrieve link value\n", __LINE__);
TEST_ERROR
}
if (HDstrcmp(linkval, "/grp1/recursive")) {
} /* end if */
if(HDstrcmp(linkval, "/grp1/recursive")) {
H5_FAILED();
puts(" Recursive link test failed. Wrong link value");
TEST_ERROR
}
} /* end if */
/* Non-existant link */
if(H5Lexists(file, "foobar", H5P_DEFAULT) == TRUE) TEST_ERROR
if(H5Lexists(file, "foobar", H5P_DEFAULT) == TRUE) FAIL_STACK_ERROR
/* Cleanup */
if (H5Fclose(file) < 0) TEST_ERROR
if(H5Fclose(file) < 0) FAIL_STACK_ERROR
PASSED();
return 0;
error:
error:
return -1;
}
@ -4365,7 +4366,7 @@ ud_callbacks(hid_t fapl, hbool_t new_format)
}
/* Fill the query buffer */
if(H5Gget_linkval(fid, UD_CB_LINK_NAME, (size_t)NAME_BUF_SIZE, query_buf) < 0) FAIL_STACK_ERROR
if(H5Lget_val(fid, UD_CB_LINK_NAME, query_buf, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(HDstrcmp(query_buf, "query succeeded") != 0) TEST_ERROR
/* Move the link */

View File

@ -447,32 +447,32 @@ check_new_move(hid_t fapl)
/* Open file */
h5_fixname(FILENAME[1], fapl, filename, sizeof filename);
if((file=H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR
if((file = H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0) FAIL_STACK_ERROR
/* Get hard link info */
if(H5Gget_objinfo(file, "/group2/group_new_name", TRUE, &sb_hard1) < 0) TEST_ERROR
if(H5Gget_objinfo(file, "/group1/hard", TRUE, &sb_hard2) < 0) TEST_ERROR
if(H5Gget_objinfo(file, "/group2/group_new_name", TRUE, &sb_hard1) < 0) FAIL_STACK_ERROR
if(H5Gget_objinfo(file, "/group1/hard", TRUE, &sb_hard2) < 0) FAIL_STACK_ERROR
/* Check hard links */
if(H5G_GROUP!=sb_hard1.type || H5G_GROUP!=sb_hard2.type)
if(H5G_GROUP != sb_hard1.type || H5G_GROUP != sb_hard2.type)
FAIL_PUTS_ERROR(" Unexpected object type, should have been a group")
if(HDmemcmp(&sb_hard1.objno, &sb_hard2.objno, sizeof(sb_hard1.objno)))
FAIL_PUTS_ERROR(" Hard link test failed. Link seems not to point to the expected file location.")
/* Check soft links */
if(H5Gget_linkval(file, "group2/soft", sizeof linkval, linkval) < 0) TEST_ERROR
if(H5Lget_val(file, "group2/soft", linkval, sizeof linkval, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(HDstrcmp(linkval, "/group1/group_move"))
FAIL_PUTS_ERROR(" Soft link test failed. Wrong link value")
/* Cleanup */
if(H5Fclose(file) < 0) TEST_ERROR
if(H5Fclose(file) < 0) FAIL_STACK_ERROR
PASSED();
return 0;
error:
error:
return 1;
}
} /* end check_new_move() */
/*-------------------------------------------------------------------------

View File

@ -1052,33 +1052,33 @@ hsize_t diff (hid_t file1_id,
char *buf1 = NULL;
char *buf2 = NULL;
if (H5Gget_objinfo (file1_id, path1, FALSE, &sb1) < 0)
if(H5Gget_objinfo(file1_id, path1, FALSE, &sb1) < 0)
goto out;
if (H5Gget_objinfo (file1_id, path1, FALSE, &sb2) < 0)
if(H5Gget_objinfo(file1_id, path1, FALSE, &sb2) < 0)
goto out;
buf1 = HDmalloc (sb1.linklen);
buf2 = HDmalloc (sb2.linklen);
buf1 = HDmalloc(sb1.linklen);
buf2 = HDmalloc(sb2.linklen);
if (H5Gget_linkval (file1_id, path1, sb1.linklen, buf1) < 0)
if(H5Lget_val(file1_id, path1, buf1, sb1.linklen, H5P_DEFAULT) < 0)
goto out;
if (H5Gget_linkval (file2_id, path2, sb1.linklen, buf2) < 0)
if(H5Lget_val(file2_id, path2, buf2, sb2.linklen, H5P_DEFAULT) < 0)
goto out;
ret = HDstrcmp (buf1, buf2);
ret = HDstrcmp(buf1, buf2);
/* if "buf1" != "buf2" then the links are "different" */
nfound = (ret != 0) ? 1 : 0;
if (print_objname (options, nfound))
do_print_objname ("link", path1, path2);
if(print_objname(options, nfound))
do_print_objname("link", path1, path2);
/* always print the number of differences found in verbose mode */
if (options->m_verbose)
if(options->m_verbose)
print_found(nfound);
HDfree (buf1);
HDfree (buf2);
HDfree(buf1);
HDfree(buf2);
}
break;

View File

@ -611,85 +611,80 @@ static int traverse( hid_t loc_id,
break;
/*-------------------------------------------------------------------------
* H5G_LINK
*-------------------------------------------------------------------------
*/
/*-------------------------------------------------------------------------
* H5G_LINK
*-------------------------------------------------------------------------
*/
case H5G_LINK:
{
/* increment */
inserted_objs++;
case H5G_LINK:
/* increment */
inserted_objs++;
/* add object to table */
trav_table_add(HADDR_UNDEF, path, H5G_LINK, table );
/* add object to table */
trav_table_add(HADDR_UNDEF, path, H5G_LINK, table);
if (statbuf.linklen>0)
{
char *targbuf;
if(statbuf.linklen > 0) {
char *targbuf;
targbuf = HDmalloc(statbuf.linklen);
assert(targbuf);
H5Gget_linkval(loc_id,path,statbuf.linklen,targbuf);
if (print)
printf(" %-10s %s -> %s\n", "link", path, targbuf);
free(targbuf);
}
else
{
if (print)
printf(" %-10s %s ->\n", "link", path);
}
}
targbuf = HDmalloc(statbuf.linklen);
assert(targbuf);
H5Lget_val(loc_id, path, targbuf, statbuf.linklen, H5P_DEFAULT);
if(print)
printf(" %-10s %s -> %s\n", "link", path, targbuf);
free(targbuf);
}
else {
if(print)
printf(" %-10s %s ->\n", "link", path);
}
break;
break;
/*-------------------------------------------------------------------------
* H5G_UDLINK
*-------------------------------------------------------------------------
*/
/*-------------------------------------------------------------------------
* H5G_UDLINK
*-------------------------------------------------------------------------
*/
case H5G_UDLINK:
{
H5L_info_t linkbuf;
case H5G_UDLINK:
{
H5L_info_t linkbuf;
/* increment */
inserted_objs++;
/* increment */
inserted_objs++;
/* add object to table */
trav_table_add(HADDR_UNDEF, path, H5G_UDLINK, table );
/* add object to table */
trav_table_add(HADDR_UNDEF, path, H5G_UDLINK, table );
/* Get type of link */
H5E_BEGIN_TRY {
/* get link class info */
H5Lget_info( loc_id, path, &linkbuf, H5P_DEFAULT);
} H5E_END_TRY;
/* Get type of link */
H5E_BEGIN_TRY {
/* get link class info */
H5Lget_info( loc_id, path, &linkbuf, H5P_DEFAULT);
} H5E_END_TRY;
if(linkbuf.type == H5L_TYPE_EXTERNAL) {
if(statbuf.linklen > 0) {
char *targbuf;
const char *filename;
const char *objname;
if(linkbuf.type == H5L_TYPE_EXTERNAL) {
if(statbuf.linklen > 0) {
char *targbuf;
const char *filename;
const char *objname;
targbuf = HDmalloc(statbuf.linklen);
assert(targbuf);
H5Gget_linkval(loc_id, path, statbuf.linklen, targbuf);
H5Lunpack_elink_val(targbuf, statbuf.linklen, NULL, &filename, &objname);
if(print)
printf(" %-10s %s -> %s %s\n", "ext link", path, filename, objname);
free(targbuf);
} /* end if */
else {
if(print)
printf(" %-10s %s ->\n", "udlink", path);
} /* end else */
} /* end if */
else { /* Unknown user-defined type */
if(print)
printf(" %-10s %s ->\n", "UD link type", path);
} /* end else */
}
break;
targbuf = HDmalloc(statbuf.linklen);
assert(targbuf);
H5Lget_val(loc_id, path, targbuf, statbuf.linklen, H5P_DEFAULT);
H5Lunpack_elink_val(targbuf, statbuf.linklen, NULL, &filename, &objname);
if(print)
printf(" %-10s %s -> %s %s\n", "ext link", path, filename, objname);
free(targbuf);
} /* end if */
else {
if(print)
printf(" %-10s %s ->\n", "udlink", path);
} /* end else */
} /* end if */
else { /* Unknown user-defined type */
if(print)
printf(" %-10s %s ->\n", "UD link type", path);
} /* end else */
}
break;
default: