[svn-r14131] Description:

Move H5Giterate() and H5G_iterate_t to deprecated symbols section,
replacing them with H5Literate and H5L_iterate_t respectively.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	AIX/32 5.3 (copper)
	Solaris/32 5.10 (linew)
	Mac OS X/32 10.4.10 (amazon)
This commit is contained in:
Quincey Koziol 2007-08-30 15:03:37 -05:00
parent 1374654210
commit a4069db8f4
31 changed files with 363 additions and 338 deletions

View File

@ -46,7 +46,8 @@ const H5std_string FILE_NAME( "Group.h5" );
const int RANK = 2;
// Operator function
extern "C" herr_t file_info(hid_t loc_id, const char *name, void *opdata);
extern "C" herr_t file_info(hid_t loc_id, const char *name, const H5L_info_t *linfo,
void *opdata);
int main(void)
{
@ -166,7 +167,7 @@ int main(void)
* root directory.
*/
cout << endl << "Iterating over elements in the file" << endl;
herr_t idx = H5Giterate(file->getId(), "/", NULL, file_info, NULL);
herr_t idx = H5Literate(file->getId(), "/", H5_INDEX_NAME, H5_ITER_INC, NULL, file_info, NULL, H5P_DEFAULT);
cout << endl;
/*
@ -184,7 +185,7 @@ int main(void)
cout << "\"Data\" is unlinked" << endl;
cout << endl << "Iterating over elements in the file again" << endl;
idx = H5Giterate(file->getId(), "/", NULL, file_info, NULL);
idx = H5Literate(file->getId(), "/", H5_INDEX_NAME, H5_ITER_INC, NULL, file_info, NULL, H5P_DEFAULT);
cout << endl;
/*
@ -228,9 +229,10 @@ int main(void)
* Operator function.
*/
herr_t
file_info(hid_t loc_id, const char *name, void *opdata)
file_info(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *opdata)
{
hid_t group;
/*
* Open the group using its name.
*/

View File

@ -243,7 +243,7 @@ DataSet CommonFG::openDataSet( const H5std_string& name ) const
/// specified location.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::link( H5G_link_t link_type, const char* curr_name, const char* new_name ) const
void CommonFG::link( H5L_type_t link_type, const char* curr_name, const char* new_name ) const
{
herr_t ret_value;
@ -274,7 +274,7 @@ void CommonFG::link( H5G_link_t link_type, const char* curr_name, const char* ne
/// \c std::string for \a curr_name and \a new_name.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::link( H5G_link_t link_type, const H5std_string& curr_name, const H5std_string& new_name ) const
void CommonFG::link( H5L_type_t link_type, const H5std_string& curr_name, const H5std_string& new_name ) const
{
link( link_type, curr_name.c_str(), new_name.c_str() );
}
@ -935,6 +935,7 @@ VarLenType CommonFG::openVarLenType( const H5std_string& name ) const
return( openVarLenType( name.c_str()) );
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: CommonFG::iterateElems
///\brief Iterates a user's function over the entries of a group.
@ -969,6 +970,7 @@ int CommonFG::iterateElems( const H5std_string& name, int *idx, H5G_iterate_t op
{
return( iterateElems( name.c_str(), idx, op, op_data ));
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: CommonFG::getNumObjs

View File

@ -86,15 +86,17 @@ class H5_DLLCPP CommonFG {
H5G_obj_t getObjTypeByIdx(hsize_t idx) const;
H5G_obj_t getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const;
#ifndef H5_NO_DEPRECATED_SYMBOLS
// Iterates over the elements of this group - not implemented in
// C++ style yet.
int iterateElems(const char* name, int *idx, H5G_iterate_t op, void *op_data);
int iterateElems(const H5std_string& name, int *idx, H5G_iterate_t op, void *op_data);
#endif /* H5_NO_DEPRECATED_SYMBOLS */
// Creates a link of the specified type from new_name to current_name;
// both names are interpreted relative to the specified location id.
void link(H5G_link_t link_type, const char* curr_name, const char* new_name) const;
void link(H5G_link_t link_type, const H5std_string& curr_name, const H5std_string& new_name) const;
void link(H5L_type_t link_type, const char* curr_name, const char* new_name) const;
void link(H5L_type_t link_type, const H5std_string& curr_name, const H5std_string& new_name) const;
// Removes the specified name at this location.
void unlink(const char* name) const;

View File

@ -28,10 +28,10 @@
#define H5FILE_NAME "group.h5"
#define RANK 2
herr_t file_info(hid_t loc_id, const char *name, void *opdata);
/* Operator function */
herr_t group_info(hid_t loc_id, const char *name, void *opdata);
/* Operator function */
static herr_t file_info(hid_t loc_id, const char *name, const H5L_info_t *linfo,
void *opdata); /* Link iteration operator function */
static herr_t group_info(hid_t loc_id, const char *name, const H5L_info_t *linfo,
void *opdata); /* Link iteration operator function */
int
main(void)
{
@ -137,7 +137,7 @@ main(void)
/*
* Use iterator to see the names of the objects in the root group.
*/
idx_f = H5Giterate(file, "/", NULL, file_info, NULL);
idx_f = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, NULL, file_info, NULL, H5P_DEFAULT);
/*
* Unlink name "Data" and use iterator to see the names
@ -148,13 +148,13 @@ main(void)
else
printf("\"Data\" is unlinked \n");
idx_f = H5Giterate(file, "/", NULL, file_info, NULL);
idx_f = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, NULL, file_info, NULL, H5P_DEFAULT);
/*
* Use iterator to see the names of the objects in the group
* /Data_new.
*/
idx_g = H5Giterate(grp, "/Data_new", NULL, group_info, NULL);
idx_g = H5Literate(grp, "/Data_new", H5_INDEX_NAME, H5_ITER_INC, NULL, group_info, NULL, H5P_DEFAULT);
/*
* Close the file.
@ -169,100 +169,93 @@ main(void)
/*
* Operator function.
*/
herr_t file_info(hid_t loc_id, const char *name, void *opdata)
static herr_t
file_info(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *opdata)
{
/* avoid warnings */
/* avoid compiler warnings */
loc_id = loc_id;
opdata = opdata;
linfo = linfo;
/*
* Display group name. The name is passed to the function by
* the Library. Some magic :-)
*/
printf("\n");
printf("Name : ");
puts(name);
printf("\nName : %s\n", name);
return 0;
}
}
/*
* Operator function.
*/
herr_t group_info(hid_t loc_id, const char *name, void *opdata)
static herr_t
group_info(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *opdata)
{
hid_t did; /* dataset identifier */
hid_t tid; /* datatype identifier */
H5T_class_t t_class;
hid_t pid; /* data_property identifier */
hsize_t chunk_dims_out[2];
hid_t did; /* dataset identifier */
hid_t tid; /* datatype identifier */
H5T_class_t t_class;
hid_t pid; /* data_property identifier */
hsize_t chunk_dims_out[2];
int rank_chunk;
int rank_chunk;
/* avoid warnings */
opdata = opdata;
linfo = linfo;
/* avoid warnings */
opdata = opdata;
/*
* Open the datasets using their names.
*/
did = H5Dopen(loc_id, name);
/*
* Display dataset name.
*/
printf("\n");
printf("Name : ");
puts(name);
/*
* Display dataset information.
*/
tid = H5Dget_type(did); /* get datatype*/
pid = H5Dget_create_plist(did); /* get creation property list */
/*
* Check if dataset is chunked.
*/
if(H5D_CHUNKED == H5Pget_layout(pid)){
/*
* get chunking information: rank and dimensions.
* Open the datasets using their names.
*/
rank_chunk = H5Pget_chunk(pid, 2, chunk_dims_out);
printf("chunk rank %d, dimensions %lu x %lu\n", rank_chunk,
(unsigned long)(chunk_dims_out[0]),
(unsigned long)(chunk_dims_out[1]));
}
else{
t_class = H5Tget_class(tid);
if(t_class < 0){
puts(" Invalid datatype.\n");
did = H5Dopen(loc_id, name);
/*
* Display dataset name.
*/
printf("\nName : %s\n", name);
/*
* Display dataset information.
*/
tid = H5Dget_type(did); /* get datatype*/
pid = H5Dget_create_plist(did); /* get creation property list */
/*
* Check if dataset is chunked.
*/
if(H5D_CHUNKED == H5Pget_layout(pid)) {
/*
* get chunking information: rank and dimensions.
*/
rank_chunk = H5Pget_chunk(pid, 2, chunk_dims_out);
printf("chunk rank %d, dimensions %lu x %lu\n", rank_chunk,
(unsigned long)(chunk_dims_out[0]),
(unsigned long)(chunk_dims_out[1]));
}
else {
if(t_class == H5T_INTEGER)
puts(" Datatype is 'H5T_NATIVE_INTEGER'.\n");
if(t_class == H5T_FLOAT)
puts(" Datatype is 'H5T_NATIVE_FLOAT'.\n");
if(t_class == H5T_STRING)
puts(" Datatype is 'H5T_NATIVE_STRING'.\n");
if(t_class == H5T_BITFIELD)
puts(" Datatype is 'H5T_NATIVE_BITFIELD'.\n");
if(t_class == H5T_OPAQUE)
puts(" Datatype is 'H5T_NATIVE_OPAQUE'.\n");
if(t_class == H5T_COMPOUND)
puts(" Datatype is 'H5T_NATIVE_COMPOUND'.\n");
t_class = H5Tget_class(tid);
if(t_class < 0) {
puts(" Invalid datatype.\n");
}
else {
if(t_class == H5T_INTEGER)
puts(" Datatype is 'H5T_NATIVE_INTEGER'.\n");
if(t_class == H5T_FLOAT)
puts(" Datatype is 'H5T_NATIVE_FLOAT'.\n");
if(t_class == H5T_STRING)
puts(" Datatype is 'H5T_NATIVE_STRING'.\n");
if(t_class == H5T_BITFIELD)
puts(" Datatype is 'H5T_NATIVE_BITFIELD'.\n");
if(t_class == H5T_OPAQUE)
puts(" Datatype is 'H5T_NATIVE_OPAQUE'.\n");
if(t_class == H5T_COMPOUND)
puts(" Datatype is 'H5T_NATIVE_COMPOUND'.\n");
}
}
}
H5Dclose(did);
H5Pclose(pid);
H5Tclose(tid);
return 0;
}
H5Dclose(did);
H5Pclose(pid);
H5Tclose(tid);
return 0;
}

View File

@ -297,7 +297,7 @@ nh5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name,
/*
* Call appropriate link creation function
*/
switch((H5G_link_t)*link_type) {
switch((H5L_type_t)*link_type) {
case H5L_TYPE_HARD:
if(H5Lcreate_hard((hid_t)*loc_id, c_current_name, H5L_SAME_LOC, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0)
goto DONE;
@ -359,7 +359,7 @@ nh5glink2_c(hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen,
/*
* Call appropriate link creation function
*/
switch((H5G_link_t)*link_type) {
switch((H5L_type_t)*link_type) {
case H5L_TYPE_HARD:
if(H5Lcreate_hard((hid_t)*cur_loc_id, c_cur_name, (hid_t)*new_loc_id, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0)
goto DONE;

View File

@ -304,8 +304,8 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
h5g_flags[3] = H5G_TYPE;
h5g_flags[4] = H5G_LINK;
h5g_flags[5] = H5G_LINK_ERROR;
h5g_flags[6] = H5G_LINK_HARD;
h5g_flags[7] = H5G_LINK_SOFT;
h5g_flags[6] = H5L_TYPE_HARD;
h5g_flags[7] = H5L_TYPE_SOFT;
/*
* H5I flags

View File

@ -1032,34 +1032,29 @@ out:
*-------------------------------------------------------------------------
*/
static herr_t find_dataset( hid_t loc_id, const char *name, void *op_data)
static herr_t
find_dataset(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *op_data)
{
/* Define a default zero value for return. This will cause the iterator to continue if
* the dataset is not found yet.
*/
int ret = 0;
/* Define a default zero value for return. This will cause the iterator to continue if
* the dataset is not found yet.
*/
/* Shut the compiler up */
loc_id = loc_id;
linfo = linfo;
int ret = 0;
/* Define a positive value for return value if the dataset was found. This will
* cause the iterator to immediately return that positive value,
* indicating short-circuit success
*/
if(strcmp(name, (char *)op_data) == 0)
ret = 1;
char *dset_name = (char*)op_data;
/* Shut the compiler up */
loc_id=loc_id;
/* Define a positive value for return value if the dataset was found. This will
* cause the iterator to immediately return that positive value,
* indicating short-circuit success
*/
if( strcmp( name, dset_name ) == 0 )
ret = 1;
return ret;
return ret;
}
/*-------------------------------------------------------------------------
* Function: H5LTfind_dataset
*
@ -1082,14 +1077,10 @@ static herr_t find_dataset( hid_t loc_id, const char *name, void *op_data)
*-------------------------------------------------------------------------
*/
herr_t H5LTfind_dataset( hid_t loc_id, const char *dset_name )
herr_t
H5LTfind_dataset( hid_t loc_id, const char *dset_name )
{
herr_t ret;
ret = H5Giterate( loc_id, ".", 0, find_dataset, (void *)dset_name );
return ret;
return H5Literate(loc_id, ".", H5_INDEX_NAME, H5_ITER_INC, 0, find_dataset, (void *)dset_name, H5P_DEFAULT );
}

View File

@ -906,10 +906,12 @@ H5G_dense_iterate_bt2_cb(const void *_record, void *_bt2_udata)
/* Check which type of callback to make */
switch(bt2_udata->lnk_op->op_type) {
#ifndef H5_NO_DEPRECATED_SYMBOLS
case H5G_LINK_OP_OLD:
/* Make the old-type application callback */
ret_value = (bt2_udata->lnk_op->u.old_op)(bt2_udata->gid, fh_udata.lnk->name, bt2_udata->op_data);
break;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
case H5G_LINK_OP_APP:
{

View File

@ -273,7 +273,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
H5Glink(hid_t cur_loc_id, H5L_type_t type, const char *cur_name, const char *new_name)
H5Glink(hid_t cur_loc_id, H5G_link_t type, const char *cur_name, const char *new_name)
{
herr_t ret_value = SUCCEED; /* Return value */
@ -318,7 +318,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
H5Glink2(hid_t cur_loc_id, const char *cur_name, H5L_type_t type,
H5Glink2(hid_t cur_loc_id, const char *cur_name, H5G_link_t type,
hid_t new_loc_id, const char *new_name)
{
herr_t ret_value = SUCCEED; /* Return value */
@ -719,7 +719,6 @@ H5Gget_comment(hid_t loc_id, const char *name, size_t bufsize, char *buf)
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Gget_comment() */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/*-------------------------------------------------------------------------
@ -788,6 +787,7 @@ H5Giterate(hid_t loc_id, const char *name, int *idx_p, H5G_iterate_t op,
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Giterate() */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/*-------------------------------------------------------------------------

View File

@ -623,10 +623,12 @@ H5G_link_iterate_table(const H5G_link_table_t *ltable, hsize_t skip,
for(; u < ltable->nlinks && !ret_value; u++) {
/* Check which kind of callback to make */
switch(lnk_op->op_type) {
#ifndef H5_NO_DEPRECATED_SYMBOLS
case H5G_LINK_OP_OLD:
/* Make the old-type application callback */
ret_value = (lnk_op->u.old_op)(gid, ltable->lnks[u].name, op_data);
break;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
case H5G_LINK_OP_APP:
{

View File

@ -1437,10 +1437,12 @@ H5G_node_iterate(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t ad
/* Check which type of callback to make */
switch(udata->lnk_op->op_type) {
#ifndef H5_NO_DEPRECATED_SYMBOLS
case H5G_LINK_OP_OLD:
/* Make the old-type application callback */
ret_value = (udata->lnk_op->u.old_op)(udata->group_id, name, udata->op_data);
break;
#endif /* H5_NO_DEPRECATED_SYMBOLS */
case H5G_LINK_OP_APP:
{

View File

@ -133,12 +133,16 @@ typedef herr_t (*H5G_lib_iterate_t)(const H5O_link_t *lnk, void *op_data);
/* Describe kind of callback to make for each link */
typedef struct {
enum {
#ifndef H5_NO_DEPRECATED_SYMBOLS
H5G_LINK_OP_OLD, /* Old application callback */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
H5G_LINK_OP_APP, /* Application callback */
H5G_LINK_OP_LIB /* Library internal callback */
} op_type;
union {
#ifndef H5_NO_DEPRECATED_SYMBOLS
H5G_iterate_t old_op; /* Old application callback for each link */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
H5L_iterate_t app_op; /* Application callback for each link */
H5G_lib_iterate_t lib_op; /* Library internal callback for each link */
} u;

View File

@ -47,12 +47,6 @@
#define H5G_NUSERTYPES (H5G_NTYPES-H5G_NLIBTYPES)
#define H5G_USERTYPE(X) (8+(X)) /* User defined types */
#define H5G_LINK_ERROR H5L_TYPE_ERROR
#define H5G_LINK_HARD H5L_TYPE_HARD
#define H5G_LINK_SOFT H5L_TYPE_SOFT
#define H5G_link_t H5L_type_t
#define H5G_SAME_LOC H5L_SAME_LOC
#ifdef __cplusplus
extern "C" {
#endif
@ -109,9 +103,6 @@ typedef struct H5G_stat_t {
H5O_stat_t ohdr; /* Object header information */
} H5G_stat_t;
/* Prototype for H5Giterate() operator */
typedef herr_t (*H5G_iterate_t)(hid_t group, const char *name, void *op_data);
/********************/
/* Public Variables */
/********************/
@ -139,8 +130,6 @@ H5_DLL herr_t H5Gclose(hid_t group_id);
*/
H5_DLL ssize_t H5Gget_objname_by_idx(hid_t loc_id, hsize_t idx, char* name,
size_t size);
H5_DLL herr_t H5Giterate(hid_t loc_id, const char *name, int *idx,
H5G_iterate_t op, void *op_data);
H5_DLL H5G_obj_t H5Gget_objtype_by_idx(hid_t loc_id, hsize_t idx);
H5_DLL herr_t H5Gget_objinfo(hid_t loc_id, const char *name,
hbool_t follow_link, H5G_stat_t *statbuf/*out*/);
@ -151,14 +140,28 @@ H5_DLL herr_t H5Gget_num_objs(hid_t loc_id, hsize_t *num_objs);
*/
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Macros */
/* Link definitions */
#define H5G_SAME_LOC H5L_SAME_LOC
#define H5G_LINK_ERROR H5L_TYPE_ERROR
#define H5G_LINK_HARD H5L_TYPE_HARD
#define H5G_LINK_SOFT H5L_TYPE_SOFT
#define H5G_link_t H5L_type_t
/* Typedefs */
/* Prototype for H5Giterate() operator */
typedef herr_t (*H5G_iterate_t)(hid_t group, const char *name, void *op_data);
/* Function prototypes */
H5_DLL hid_t H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint);
H5_DLL hid_t H5Gopen1(hid_t loc_id, const char *name);
H5_DLL herr_t H5Glink(hid_t cur_loc_id, H5L_type_t type, const char *cur_name,
H5_DLL herr_t H5Glink(hid_t cur_loc_id, H5G_link_t type, const char *cur_name,
const char *new_name);
H5_DLL herr_t H5Glink2(hid_t cur_loc_id, const char *cur_name, H5L_type_t type,
H5_DLL herr_t H5Glink2(hid_t cur_loc_id, const char *cur_name, H5G_link_t type,
hid_t new_loc_id, const char *new_name);
H5_DLL herr_t H5Gmove(hid_t src_loc_id, const char *src_name,
const char *dst_name);
@ -170,6 +173,8 @@ H5_DLL herr_t H5Gget_linkval(hid_t loc_id, const char *name, size_t size,
H5_DLL herr_t H5Gset_comment(hid_t loc_id, const char *name, const char *comment);
H5_DLL int H5Gget_comment(hid_t loc_id, const char *name, size_t bufsize,
char *buf);
H5_DLL herr_t H5Giterate(hid_t loc_id, const char *name, int *idx,
H5G_iterate_t op, void *op_data);
#endif /* H5_NO_DEPRECATED_SYMBOLS */

View File

@ -494,7 +494,7 @@ H5G_stab_iterate(const H5O_loc_t *oloc, hid_t dxpl_id, H5_iter_order_t order,
/* Sanity check */
HDassert(oloc);
HDassert(lnk_op && lnk_op->u.old_op);
HDassert(lnk_op && lnk_op->u.app_op);
/* Get the B-tree info */
if(NULL == H5O_msg_read(oloc, H5O_STAB_ID, &stab, dxpl_id))

View File

@ -118,13 +118,8 @@ typedef struct {
long_long r, s, t;
} stype4;
#if 1
# define NX 100u
# define NY 2000u
#else
# define NX 12u
# define NY 9u
#endif
#define NX 100u
#define NY 2000u
/*-------------------------------------------------------------------------
@ -1254,19 +1249,19 @@ error:
*-------------------------------------------------------------------------
*/
static int
compare_data(unsigned char *src_data, unsigned char *dst_data, hbool_t src_subset)
compare_data(void *src_data, void *dst_data, hbool_t src_subset)
{
stype1 *s_ptr;
stype2 *d_ptr;
int i;
for (i=0; i<(int)NX*NY; i++) {
for(i = 0; i < (int)(NX * NY); i++) {
if(src_subset) {
s_ptr = ((stype1*)src_data) + i;
d_ptr = ((stype2*)dst_data) + i;
d_ptr = ((stype2*)dst_data) + i;
} else {
s_ptr = ((stype2*)src_data) + i;
d_ptr = ((stype1*)dst_data) + i;
d_ptr = ((stype1*)dst_data) + i;
}
if (s_ptr->a != d_ptr->a ||
@ -1469,7 +1464,7 @@ test_hdf5_src_subset(char *filename, hid_t fapl)
if(H5Dread(dataset, dst_tid, H5S_ALL, H5S_ALL, dxpl, rbuf)<0)
goto error;
if(compare_data(orig, rbuf, TRUE)<0)
if(compare_data(orig, rbuf, TRUE) < 0)
goto error;
if(H5Dclose(dataset) < 0)
@ -1482,7 +1477,7 @@ test_hdf5_src_subset(char *filename, hid_t fapl)
if(H5Dread(dataset, dst_tid, H5S_ALL, H5S_ALL, dxpl, rbuf)<0)
goto error;
if(compare_data(orig, rbuf, TRUE)<0)
if(compare_data(orig, rbuf, TRUE) < 0)
goto error;
if(H5Dclose(dataset) < 0)
@ -1673,7 +1668,7 @@ test_hdf5_dst_subset(char *filename, hid_t fapl)
if(H5Dread(dataset, dst_tid, H5S_ALL, H5S_ALL, dxpl, rbuf)<0)
goto error;
if(compare_data(orig, rbuf, FALSE)<0)
if(compare_data(orig, rbuf, FALSE) < 0)
goto error;
if(H5Dclose(dataset) < 0)
@ -1686,7 +1681,7 @@ test_hdf5_dst_subset(char *filename, hid_t fapl)
if(H5Dread(dataset, dst_tid, H5S_ALL, H5S_ALL, dxpl, rbuf)<0)
goto error;
if(compare_data(orig, rbuf, FALSE)<0)
if(compare_data(orig, rbuf, FALSE) < 0)
goto error;
if(H5Dclose(dataset) < 0)

View File

@ -55,7 +55,7 @@ const char *FILENAME[] = {
#define UD_PLIST_TYPE 128
#define UD_CBFAIL_TYPE UD_PLIST_TYPE
#define UD_ERROR_TYPE 189
#define UD_BAD_TYPE1 H5G_LINK_HARD
#define UD_BAD_TYPE1 H5L_TYPE_HARD
#define UD_BAD_TYPE2 (H5L_TYPE_UD_MIN - 5)
#define UD_BAD_VERS (H5L_LINK_CLASS_T_VERS + 1)
@ -5209,7 +5209,7 @@ linkinfo(hid_t fapl, hbool_t new_format)
if(H5Lget_info(fid, "ext_link", &li, H5P_DEFAULT) < 0) TEST_ERROR
if(li.type != H5L_TYPE_EXTERNAL) TEST_ERROR
if(H5Lget_info(fid, "softlink", &li, H5P_DEFAULT) < 0) TEST_ERROR
if(li.type != H5G_LINK_SOFT) TEST_ERROR
if(li.type != H5L_TYPE_SOFT) TEST_ERROR
if(H5Lget_info(fid, "ud_link", &li, H5P_DEFAULT) < 0) TEST_ERROR
if(li.type != UD_PLIST_TYPE) TEST_ERROR
@ -7148,6 +7148,7 @@ HDfprintf(stderr, "op_data->curr = %Hd\n", op_data->curr);
return(H5_ITER_CONT);
} /* end link_iterate_cb() */
#ifndef H5_NO_DEPRECATED_SYMBOLS
/*-------------------------------------------------------------------------
* Function: group_iterate_cb
@ -7168,6 +7169,7 @@ group_iterate_cb(hid_t group_id, const char *link_name, void *_op_data)
{
return(link_iterate_cb(group_id, link_name, NULL, _op_data));
} /* end group_iterate_cb() */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/*-------------------------------------------------------------------------
@ -7211,7 +7213,9 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
{
unsigned v; /* Local index variable */
hsize_t skip; /* # of links to skip in group */
#ifndef H5_NO_DEPRECATED_SYMBOLS
int gskip; /* # of links to skip in group, with H5Giterate */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
herr_t ret; /* Generic return value */
/* Iterate over links in group */
@ -7229,6 +7233,7 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
if(iter_info->visited[v] == FALSE) TEST_ERROR
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Iterate over links in group, with H5Giterate */
iter_info->nskipped = gskip = 0;
iter_info->order = order;
@ -7242,6 +7247,7 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
if(gskip != (int)max_links) TEST_ERROR
for(v = 0; v < max_links; v++)
if(iter_info->visited[v] == FALSE) TEST_ERROR
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/* Skip over some links in group */
@ -7275,6 +7281,7 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
} /* end else */
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Skip over some links in group, with H5Giterate */
iter_info->nskipped = gskip = max_links / 2;
iter_info->order = order;
@ -7304,6 +7311,7 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
if(nvisit != (max_links / 2)) TEST_ERROR
} /* end else */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/* Iterate over links in group, stopping in the middle */
@ -7318,6 +7326,7 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
if(iter_info->ncalled != 3) TEST_ERROR
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Iterate over links in group, stopping in the middle, with H5Giterate() */
iter_info->nskipped = gskip = 0;
iter_info->order = order;
@ -7328,6 +7337,7 @@ link_iterate_check(hid_t group_id, H5_index_t idx_type, H5_iter_order_t order,
if((ret = H5Giterate(group_id, ".", &gskip, group_iterate_cb, iter_info)) < 0) TEST_ERROR
if(ret != CORDER_ITER_STOP) TEST_ERROR
if(iter_info->ncalled != 3) TEST_ERROR
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/* Check for iteration routine indicating failure */
@ -7617,6 +7627,7 @@ HDfprintf(stderr, "op_data->curr = %Hd\n", op_data->curr);
return(H5_ITER_CONT);
} /* end link_iterate_old_cb() */
#ifndef H5_NO_DEPRECATED_SYMBOLS
/*-------------------------------------------------------------------------
* Function: group_iterate_old_cb
@ -7637,6 +7648,7 @@ group_iterate_old_cb(hid_t group_id, const char *link_name, void *_op_data)
{
return(link_iterate_old_cb(group_id, link_name, NULL, _op_data));
} /* end group_iterate_old_cb() */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/*-------------------------------------------------------------------------
@ -7658,7 +7670,9 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
{
unsigned v; /* Local index variable */
hsize_t skip; /* # of links to skip in group */
#ifndef H5_NO_DEPRECATED_SYMBOLS
int gskip; /* # of links to skip in group, with H5Giterate */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
herr_t ret; /* Generic return value */
/* Iterate over links in group */
@ -7676,6 +7690,7 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
if(iter_info->visited[v] == FALSE) TEST_ERROR
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Iterate over links in group, with H5Giterate */
iter_info->nskipped = gskip = 0;
iter_info->order = order;
@ -7689,6 +7704,7 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
if(gskip != (int)max_links) TEST_ERROR
for(v = 0; v < max_links; v++)
if(iter_info->visited[v] == FALSE) TEST_ERROR
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/* Skip over some links in group */
@ -7722,6 +7738,7 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
} /* end else */
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Skip over some links in group, with H5Giterate */
iter_info->nskipped = gskip = max_links / 2;
iter_info->order = order;
@ -7751,6 +7768,7 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
if(nvisit != (max_links / 2)) TEST_ERROR
} /* end else */
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/* Iterate over links in group, stopping in the middle */
@ -7765,6 +7783,7 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
if(iter_info->ncalled != 3) TEST_ERROR
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Iterate over links in group, stopping in the middle, with H5Giterate() */
iter_info->nskipped = gskip = 0;
iter_info->order = order;
@ -7775,6 +7794,7 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order,
if((ret = H5Giterate(group_id, ".", &gskip, group_iterate_old_cb, iter_info)) < 0) TEST_ERROR
if(ret != CORDER_ITER_STOP) TEST_ERROR
if(iter_info->ncalled != 3) TEST_ERROR
#endif /* H5_NO_DEPRECATED_SYMBOLS */
/* Check for iteration routine indicating failure */

View File

@ -4979,7 +4979,7 @@ test_copy_group_links(hid_t fcpl_src, hid_t fcpl_dst, hid_t fapl)
if(H5Dclose(did) < 0) TEST_ERROR
/* make a hard link to the dataset */
if(H5Lcreate_hard(fid_src, NAME_LINK_DATASET, H5G_SAME_LOC, NAME_LINK_HARD, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(fid_src, NAME_LINK_DATASET, H5L_SAME_LOC, NAME_LINK_HARD, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
/* make a soft link to the dataset */
if(H5Lcreate_soft(NAME_LINK_DATASET, fid_src, NAME_LINK_SOFT, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
@ -7019,7 +7019,7 @@ test_copy_option(hid_t fcpl_src, hid_t fcpl_dst, hid_t fapl, unsigned flag, hboo
/* Create group to compare with */
if((gid = H5Gcreate2(fid_src, NAME_GROUP_LINK2, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(fid_src, NAME_DATASET_SUB_SUB, H5G_SAME_LOC, NAME_LINK_SOFT2, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(fid_src, NAME_DATASET_SUB_SUB, H5L_SAME_LOC, NAME_LINK_SOFT2, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_soft("nowhere", fid_src, NAME_LINK_SOFT_DANGLE2, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Gclose(gid) < 0) FAIL_STACK_ERROR
} /* end if */

View File

@ -61,8 +61,10 @@ typedef struct {
/* Local functions */
int iter_strcmp(const void *s1, const void *s2);
int iter_strcmp2(const void *s1, const void *s2);
herr_t giter_cb(hid_t group, const char *name, void *op_data);
herr_t giter_cb2(hid_t group, const char *name, void *op_data);
static herr_t liter_cb(hid_t group, const char *name, const H5L_info_t *info,
void *op_data);
static herr_t liter_cb2(hid_t group, const char *name, const H5L_info_t *info,
void *op_data);
herr_t aiter_cb(hid_t loc_id, const char *name, void *op_data);
/****************************************************************
@ -77,10 +79,12 @@ int iter_strcmp(const void *s1, const void *s2)
/****************************************************************
**
** giter_cb(): Custom group iteration callback routine.
** liter_cb(): Custom link iteration callback routine.
**
****************************************************************/
herr_t giter_cb(hid_t UNUSED group, const char *name, void *op_data)
static herr_t
liter_cb(hid_t UNUSED group, const char *name, const H5L_info_t UNUSED *link_info,
void *op_data)
{
iter_info *info = (iter_info *)op_data;
static int count = 0;
@ -107,14 +111,15 @@ herr_t giter_cb(hid_t UNUSED group, const char *name, void *op_data)
printf("invalid iteration command");
return(-1);
} /* end switch */
} /* end giter_cb() */
} /* end liter_cb() */
/****************************************************************
**
** test_iter_group(): Test group iteration functionality
**
****************************************************************/
static void test_iter_group(hid_t fapl, hbool_t new_format)
static void
test_iter_group(hid_t fapl, hbool_t new_format)
{
hid_t file; /* File ID */
hid_t dataset; /* Dataset ID */
@ -122,7 +127,7 @@ static void test_iter_group(hid_t fapl, hbool_t new_format)
hid_t filespace; /* Common dataspace ID */
hid_t root_group,grp; /* Root group ID */
int i; /* counting variable */
int idx; /* Index in the group */
hsize_t idx; /* Index in the group */
char name[NAMELEN]; /* temporary name buffer */
char *lnames[NDATASETS + 2];/* Names of the links created */
char dataset_name[NAMELEN]; /* dataset name */
@ -138,10 +143,10 @@ static void test_iter_group(hid_t fapl, hbool_t new_format)
CHECK(file, FAIL, "H5Fcreate");
/* Test iterating over empty group */
info.command=RET_ZERO;
idx=0;
ret=H5Giterate(file,"/",&idx,giter_cb,&info);
VERIFY(ret, SUCCEED, "H5Giterate");
info.command = RET_ZERO;
idx = 0;
ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT);
VERIFY(ret, SUCCEED, "H5Literate");
datatype = H5Tcopy(H5T_NATIVE_INT);
CHECK(datatype, FAIL, "H5Tcopy");
@ -255,45 +260,45 @@ static void test_iter_group(hid_t fapl, hbool_t new_format)
/* Test invalid indices for starting iteration */
info.command = RET_ZERO;
idx = -1;
idx = (hsize_t)-1;
H5E_BEGIN_TRY {
ret = H5Giterate(file, "/", &idx, giter_cb, &info);
ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT);
} H5E_END_TRY;
VERIFY(ret, FAIL, "H5Giterate");
VERIFY(ret, FAIL, "H5Literate");
/* Test skipping exactly as many entries as in the group */
idx = NDATASETS + 2;
H5E_BEGIN_TRY {
ret = H5Giterate(file, "/", &idx, giter_cb, &info);
ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT);
} H5E_END_TRY;
VERIFY(ret, FAIL, "H5Giterate");
VERIFY(ret, FAIL, "H5Literate");
/* Test skipping more entries than are in the group */
idx = NDATASETS + 3;
H5E_BEGIN_TRY {
ret = H5Giterate(file, "/", &idx, giter_cb, &info);
ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT);
} H5E_END_TRY;
VERIFY(ret, FAIL, "H5Giterate");
VERIFY(ret, FAIL, "H5Literate");
/* Test all objects in group, when callback always returns 0 */
info.command = RET_ZERO;
idx = 0;
if((ret = H5Giterate(file, "/", &idx, giter_cb, &info)) > 0)
if((ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT)) > 0)
TestErrPrintf("Group iteration function didn't return zero correctly!\n");
/* Test all objects in group, when callback always returns 1 */
/* This also tests the "restarting" ability, because the index changes */
info.command = RET_TWO;
idx = i = 0;
while((ret = H5Giterate(file, "/", &idx, giter_cb, &info)) > 0) {
while((ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT)) > 0) {
/* Verify return value from iterator gets propagated correctly */
VERIFY(ret, 2, "H5Giterate");
VERIFY(ret, 2, "H5Literate");
/* Increment the number of times "2" is returned */
i++;
/* Verify that the index is the correct value */
VERIFY(idx, i, "H5Giterate");
VERIFY(idx, (hsize_t)i, "H5Literate");
if(idx > (NDATASETS + 2))
TestErrPrintf("Group iteration function walked too far!\n");
@ -301,7 +306,7 @@ static void test_iter_group(hid_t fapl, hbool_t new_format)
if(HDstrcmp(info.name, lnames[idx - 1]) != 0)
TestErrPrintf("Group iteration function didn't return name correctly for link - lnames[%u] = '%s'!\n", (idx - 1), lnames[idx - 1]);
} /* end while */
VERIFY(ret, -1, "H5Giterate");
VERIFY(ret, -1, "H5Literate");
if(i != (NDATASETS + 2))
TestErrPrintf("%u: Group iteration function didn't perform multiple iterations correctly!\n", __LINE__);
@ -310,15 +315,15 @@ static void test_iter_group(hid_t fapl, hbool_t new_format)
/* This also tests the "restarting" ability, because the index changes */
info.command = new_format ? RET_CHANGE2 : RET_CHANGE;
idx = i = 0;
while((ret = H5Giterate(file, "/", &idx, giter_cb, &info)) >= 0) {
while((ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb, &info, H5P_DEFAULT)) >= 0) {
/* Verify return value from iterator gets propagated correctly */
VERIFY(ret, 1, "H5Giterate");
VERIFY(ret, 1, "H5Literate");
/* Increment the number of times "1" is returned */
i++;
/* Verify that the index is the correct value */
VERIFY(idx, (i + 10), "H5Giterate");
VERIFY(idx, (hsize_t)(i + 10), "H5Literate");
if(idx > (NDATASETS + 2))
TestErrPrintf("Group iteration function walked too far!\n");
@ -326,7 +331,7 @@ static void test_iter_group(hid_t fapl, hbool_t new_format)
if(HDstrcmp(info.name, lnames[idx - 1]) != 0)
TestErrPrintf("Group iteration function didn't return name correctly for link - lnames[%u] = '%s'!\n", (idx - 1), lnames[idx - 1]);
} /* end while */
VERIFY(ret, -1, "H5Giterate");
VERIFY(ret, -1, "H5Literate");
if(i != 42 || idx != 52)
TestErrPrintf("%u: Group iteration function didn't perform multiple iterations correctly!\n", __LINE__);
@ -534,10 +539,12 @@ int iter_strcmp2(const void *s1, const void *s2)
/****************************************************************
**
** giter_cb2(): Custom group iteration callback routine.
** liter_cb2(): Custom link iteration callback routine.
**
****************************************************************/
herr_t giter_cb2(hid_t loc_id, const char *name, void *opdata)
static herr_t
liter_cb2(hid_t loc_id, const char *name, const H5L_info_t UNUSED *link_info,
void *opdata)
{
const iter_info *test_info = (const iter_info *)opdata;
H5G_stat_t statbuf;
@ -545,7 +552,7 @@ herr_t giter_cb2(hid_t loc_id, const char *name, void *opdata)
if(HDstrcmp(name, test_info->name)) {
TestErrPrintf("name = '%s', test_info = '%s'\n", name, test_info->name);
return(-1);
return(H5_ITER_ERROR);
} /* end if */
/*
@ -556,11 +563,11 @@ herr_t giter_cb2(hid_t loc_id, const char *name, void *opdata)
if(test_info->type != statbuf.type) {
TestErrPrintf("test_info->type = %d, statbuf.type = %d\n", test_info->type, statbuf.type);
return(-1);
return(H5_ITER_ERROR);
} /* end if */
return(1);
} /* giter_cb2() */
return(H5_ITER_STOP);
} /* liter_cb2() */
/****************************************************************
**
@ -568,7 +575,8 @@ herr_t giter_cb2(hid_t loc_id, const char *name, void *opdata)
** for groups with large #'s of objects
**
****************************************************************/
static void test_iter_group_large(hid_t fapl)
static void
test_iter_group_large(hid_t fapl)
{
hid_t file; /* HDF5 File IDs */
hid_t dataset; /* Dataset ID */
@ -666,12 +674,14 @@ static void test_iter_group_large(hid_t fapl)
/* Iterate through the file to see members of the root group */
curr_name = &names[0];
ret = H5Giterate(file, "/", NULL, giter_cb2, curr_name);
CHECK(ret, FAIL, "H5Giterate");
for(i = 1; i < 100; ) {
ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, NULL, liter_cb2, curr_name, H5P_DEFAULT);
CHECK(ret, FAIL, "H5Literate");
for(i = 1; i < 100; i++) {
hsize_t idx = i;
curr_name = &names[i];
ret = H5Giterate(file, "/", &i, giter_cb2, curr_name);
CHECK(ret, FAIL, "H5Giterate");
ret = H5Literate(file, "/", H5_INDEX_NAME, H5_ITER_INC, &idx, liter_cb2, curr_name, H5P_DEFAULT);
CHECK(ret, FAIL, "H5Literate");
} /* end for */
/* Close file */

View File

@ -937,7 +937,8 @@ test_reference_obj_deleted(void)
**
****************************************************************/
static herr_t
test_deref_iter_op(hid_t UNUSED group, const char *name, void *op_data)
test_deref_iter_op(hid_t UNUSED group, const char *name, const H5L_info_t *info,
void *op_data)
{
int *count = (int *)op_data; /* Pointer to name counter */
herr_t ret_value;
@ -1060,8 +1061,8 @@ test_reference_group(void)
CHECK(gid, FAIL, "H5Rdereference");
/* Iterate through objects in dereferenced group */
ret = H5Giterate(gid, ".", NULL, test_deref_iter_op, &count);
CHECK(ret, FAIL, "H5Giterate");
ret = H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, test_deref_iter_op, &count, H5P_DEFAULT);
CHECK(ret, FAIL, "H5Literate");
/* Various queries on the group opened */
ret = H5Gget_num_objs(gid, &nobjs);

View File

@ -491,7 +491,7 @@ void test_objnames(hid_t fid, const char* string)
HDstrcpy(path_buf, GROUP2_NAME);
HDstrcat(path_buf, "/");
HDstrcat(path_buf, string);
ret = H5Lcreate_hard(grp3_id, path_buf, H5G_SAME_LOC, string, H5P_DEFAULT, H5P_DEFAULT);
ret = H5Lcreate_hard(grp3_id, path_buf, H5L_SAME_LOC, string, H5P_DEFAULT, H5P_DEFAULT);
CHECK(ret, FAIL, "H5Lcreate_hard");
/* Open named datatype using soft link */

View File

@ -181,7 +181,7 @@ test_many(hid_t file)
TESTING("forward unlink");
for(i = 0; i < how_many; i++) {
sprintf(name, "obj_%05d", i);
if(H5Lcreate_hard(work, "/test_many_foo", H5G_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(work, "/test_many_foo", H5L_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
} /* end for */
for(i = 0; i < how_many; i++) {
sprintf(name, "obj_%05d", i);
@ -193,7 +193,7 @@ test_many(hid_t file)
TESTING("backward unlink");
for(i = 0; i < how_many; i++) {
sprintf(name, "obj_%05d", i);
if(H5Lcreate_hard(work, "/test_many_foo", H5G_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(work, "/test_many_foo", H5L_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
} /* end for */
for(i = (how_many - 1); i >= 0; --i) {
sprintf(name, "obj_%05d", i);
@ -205,7 +205,7 @@ test_many(hid_t file)
TESTING("inward unlink");
for(i = 0; i < how_many; i++) {
sprintf(name, "obj_%05d", i);
if(H5Lcreate_hard(work, "/test_many_foo", H5G_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(work, "/test_many_foo", H5L_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
} /* end for */
for(i = 0; i < how_many; i++) {
if(i % 2)
@ -220,7 +220,7 @@ test_many(hid_t file)
TESTING("outward unlink");
for(i = 0; i < how_many; i++) {
sprintf(name, "obj_%05d", i);
if(H5Lcreate_hard(work, "/test_many_foo", H5G_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
if(H5Lcreate_hard(work, "/test_many_foo", H5L_SAME_LOC, name, H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
} /* end for */
for(i = (how_many - 1); i >= 0; --i) {
if(i % 2)
@ -380,9 +380,9 @@ test_new_move(hid_t fapl)
if(H5Lcreate_soft("/group1/group_move", grp_2, "soft", H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
/* Move a group within the file. Both of source and destination use
* H5G_SAME_LOC. Should fail. */
* H5L_SAME_LOC. Should fail. */
H5E_BEGIN_TRY {
if(H5Lmove(H5G_SAME_LOC, "group_move", H5G_SAME_LOC, "group_new_name", H5P_DEFAULT, H5P_DEFAULT) != FAIL) TEST_ERROR
if(H5Lmove(H5L_SAME_LOC, "group_move", H5L_SAME_LOC, "group_new_name", H5P_DEFAULT, H5P_DEFAULT) != FAIL) TEST_ERROR
} H5E_END_TRY;
/* Move a group across files. Should fail. */

View File

@ -96,7 +96,7 @@ static int indent; /*how far in to indent the line
static hid_t h5_fileaccess(void);
static void dump_oid(hid_t oid);
static void print_enum(hid_t type);
static herr_t dump_all(hid_t group, const char *name, void *op_data);
static herr_t dump_all(hid_t group, const char *name, const H5L_info_t *linfo, void *op_data);
static int xml_name_to_XID(const char *, char *, int , int );
static void init_prefix(char **prfx, size_t prfx_len);
static void add_prefix(char **prfx, size_t *prfx_len, const char *name);
@ -1411,12 +1411,11 @@ dump_selected_attr(hid_t loc_id, const char *name)
*-------------------------------------------------------------------------
*/
static herr_t
dump_all(hid_t group, const char *name, void * op_data)
dump_all(hid_t group, const char *name, const H5L_info_t *linfo, void * op_data)
{
hid_t obj;
char *obj_path = NULL; /* Full path of object */
H5G_stat_t statbuf;
H5L_info_t linfo; /* Link information */
herr_t ret = SUCCEED;
/* Stat the object */
@ -1426,12 +1425,6 @@ dump_all(hid_t group, const char *name, void * op_data)
ret = FAIL;
goto done;
} /* end if */
if(H5Lget_info(group, name, &linfo, H5P_DEFAULT) < 0) {
error_msg(progname, "unable to get object information\n");
d_status = EXIT_FAILURE;
ret = FAIL;
goto done;
} /* end if */
if (*(int *)op_data != H5G_UNKNOWN && statbuf.type != *(int *) op_data)
goto done;
@ -1541,9 +1534,10 @@ dump_all(hid_t group, const char *name, void * op_data)
HDfree(targbuf);
break;
}
case H5G_UDLINK:
indentation(indent);
switch(linfo.type) {
switch(linfo->type) {
case H5L_TYPE_EXTERNAL:
{
char *targbuf;
@ -1568,7 +1562,7 @@ dump_all(hid_t group, const char *name, void * op_data)
} else {
if (!doxml) {
indentation(indent + COL);
printf("LINKCLASS %d\n", linfo.type);
printf("LINKCLASS %d\n", linfo->type);
indentation(indent + COL);
printf("TARGETFILE \"%s\"\n", filename);
indentation(indent + COL);
@ -1622,7 +1616,7 @@ dump_all(hid_t group, const char *name, void * op_data)
indentation(indent + COL);
}
if (!doxml)
printf("LINKCLASS %d\n", linfo.type);
printf("LINKCLASS %d\n", linfo->type);
else /* XML */
{
char linkxid[100];
@ -1644,7 +1638,7 @@ dump_all(hid_t group, const char *name, void * op_data)
t_name, /* LinkName */
linkxid, /* OBJ-XID */
t_obj_path, /* H5SourcePath */
linfo.type, /* LinkClass */
linfo->type, /* LinkClass */
parentxid, /* Parents */
t_prefix); /* H5ParentPaths */
HDfree(t_prefix);
@ -1879,12 +1873,12 @@ dump_group(hid_t gid, const char *name)
/* dump unamed type in root group */
for (u = 0; u < type_table->nobjs; u++)
if (!type_table->objs[u].recorded) {
dset = H5Dopen(gid, type_table->objs[u].objname);
type = H5Dget_type(dset);
sprintf(type_name, "#"H5_PRINTF_HADDR_FMT, type_table->objs[u].objno);
dump_function_table->dump_named_datatype_function(type, type_name);
H5Tclose(type);
H5Dclose(dset);
dset = H5Dopen(gid, type_table->objs[u].objname);
type = H5Dget_type(dset);
sprintf(type_name, "#"H5_PRINTF_HADDR_FMT, type_table->objs[u].objno);
dump_function_table->dump_named_datatype_function(type, type_name);
H5Tclose(type);
H5Dclose(dset);
}
} /* end if */
@ -1896,22 +1890,22 @@ dump_group(hid_t gid, const char *name)
found_obj = search_obj(group_table, objno);
if (found_obj == NULL) {
indentation(indent);
error_msg(progname, "internal error (file %s:line %d)\n",
__FILE__, __LINE__);
d_status = EXIT_FAILURE;
} else if (found_obj->displayed) {
indentation(indent);
printf("%s \"%s\"\n", HARDLINK, found_obj->objname);
if (found_obj == NULL) {
indentation(indent);
error_msg(progname, "internal error (file %s:line %d)\n",
__FILE__, __LINE__);
d_status = EXIT_FAILURE;
} else if (found_obj->displayed) {
indentation(indent);
printf("%s \"%s\"\n", HARDLINK, found_obj->objname);
} else {
found_obj->displayed = TRUE;
H5Aiterate(gid, NULL, dump_attr, NULL);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
}
} else {
found_obj->displayed = TRUE;
H5Aiterate(gid, NULL, dump_attr, NULL);
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
}
} else {
H5Aiterate(gid, NULL, dump_attr, NULL);
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
}
indent -= COL;
@ -3786,7 +3780,7 @@ main(int argc, const char *argv[])
/* find all objects that might be targets of a refernce */
init_ref_path_table(fid); /* Insert the root group into the ref. path table */
H5Giterate(fid, (const char *)"/", NULL, fill_ref_path_table, (void *)"");
H5Literate(fid, (const char *)"/", H5_INDEX_NAME, H5_ITER_INC, NULL, fill_ref_path_table, (void *)"", H5P_DEFAULT);
if(doxml) {
/* initialize XML */
@ -5247,15 +5241,15 @@ xml_dump_group(hid_t gid, const char *name)
/* iterate through all the members */
xtype = H5G_TYPE;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_DATASET;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_GROUP;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_LINK;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_UDLINK;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
}
free(t_name);
free(grpxid);
@ -5263,60 +5257,60 @@ xml_dump_group(hid_t gid, const char *name)
}
} else {
/* only link -- must be first time! */
char *t_name = xml_escape_the_name(name);
char *grpxid = malloc(100);
char *parentxid = malloc(100);
if (isRoot) {
xml_name_to_XID("/",grpxid,100,1);
printf("<%sRootGroup OBJ-XID=\"%s\" H5Path=\"%s\">\n",
xmlnsprefix,grpxid,"/");
} else {
char *t_tmp = xml_escape_the_name(tmp);
par_name = xml_escape_the_name(par);
xml_name_to_XID(tmp,grpxid,100,1);
xml_name_to_XID(par,parentxid,100,1);
printf("<%sGroup Name=\"%s\" OBJ-XID=\"%s\" H5Path=\"%s\" "
"Parents=\"%s\" H5ParentPaths=\"%s\" >\n",
xmlnsprefix,t_name, grpxid, t_tmp,
parentxid, par_name);
free(t_tmp);
free(par_name);
}
free(t_name);
free(grpxid);
free(parentxid);
/* only link -- must be first time! */
char *t_name = xml_escape_the_name(name);
char *grpxid = malloc(100);
char *parentxid = malloc(100);
if (isRoot) {
xml_name_to_XID("/",grpxid,100,1);
printf("<%sRootGroup OBJ-XID=\"%s\" H5Path=\"%s\">\n",
xmlnsprefix,grpxid,"/");
} else {
char *t_tmp = xml_escape_the_name(tmp);
par_name = xml_escape_the_name(par);
xml_name_to_XID(tmp,grpxid,100,1);
xml_name_to_XID(par,parentxid,100,1);
printf("<%sGroup Name=\"%s\" OBJ-XID=\"%s\" H5Path=\"%s\" "
"Parents=\"%s\" H5ParentPaths=\"%s\" >\n",
xmlnsprefix,t_name, grpxid, t_tmp,
parentxid, par_name);
free(t_tmp);
free(par_name);
}
free(t_name);
free(grpxid);
free(parentxid);
/* 1. do all the attributes of the group */
H5Aiterate(gid, NULL, dump_function_table->dump_attribute_function, NULL);
/* 1. do all the attributes of the group */
H5Aiterate(gid, NULL, dump_function_table->dump_attribute_function, NULL);
if (!strcmp(name, "/") && unamedtype) {
if (!strcmp(name, "/") && unamedtype) {
unsigned u;
/* Very special case: dump unamed type in root group */
for (u = 0; u < type_table->nobjs; u++) {
if (!type_table->objs[u].recorded) {
dset = H5Dopen(gid, type_table->objs[u].objname);
type = H5Dget_type(dset);
sprintf(type_name, "#"H5_PRINTF_HADDR_FMT, type_table->objs[u].objno);
dump_function_table->dump_named_datatype_function(type, type_name);
H5Tclose(type);
H5Dclose(dset);
/* Very special case: dump unamed type in root group */
for (u = 0; u < type_table->nobjs; u++) {
if (!type_table->objs[u].recorded) {
dset = H5Dopen(gid, type_table->objs[u].objname);
type = H5Dget_type(dset);
sprintf(type_name, "#"H5_PRINTF_HADDR_FMT, type_table->objs[u].objno);
dump_function_table->dump_named_datatype_function(type, type_name);
H5Tclose(type);
H5Dclose(dset);
}
}
}
}
}
/* iterate through all the members */
xtype = H5G_TYPE;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
xtype = H5G_DATASET;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
xtype = H5G_GROUP;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
xtype = H5G_LINK;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
xtype = H5G_UDLINK;
H5Giterate(gid, ".", NULL, dump_all, (void *) &xtype);
/* iterate through all the members */
xtype = H5G_TYPE;
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_DATASET;
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_GROUP;
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_LINK;
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
xtype = H5G_UDLINK;
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all, (void *) &xtype, H5P_DEFAULT);
}
indent -= COL;

View File

@ -76,7 +76,7 @@ static struct dispatch_t {
dispatch_g[TYPE].list2 = (LIST2); \
}
static herr_t list (hid_t group, const char *name, void *cd);
static herr_t list (hid_t group, const char *name, const H5L_info_t *linfo, void *cd);
static void display_type(hid_t type, int ind);
static char *fix_name(const char *path, const char *base);
@ -1673,7 +1673,7 @@ group_list2(hid_t grp, const char *name)
if (recursive_g) {
iter.container = name;
H5Giterate(grp, ".", NULL, list, &iter);
H5Literate(grp, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, list, &iter, H5P_DEFAULT);
}
return 0;
}
@ -1830,10 +1830,10 @@ error:
*-------------------------------------------------------------------------
*/
static herr_t
list (hid_t group, const char *name, void *_iter)
list(hid_t group, const char *name, const H5L_info_t UNUSED *linfo, void *_iter)
{
hid_t obj=-1;
char buf[512], comment[50], *fullname=NULL, *s=NULL;
hid_t obj = -1;
char buf[512], comment[50], *fullname = NULL, *s = NULL;
H5G_stat_t sb;
haddr_t objno; /* Compact form of object's location */
struct tm *tm;
@ -1855,21 +1855,20 @@ list (hid_t group, const char *name, void *_iter)
H5E_BEGIN_TRY {
status = H5Gget_objinfo(group, name, FALSE, &sb);
} H5E_END_TRY;
if (status<0) {
if(status < 0) {
puts("**NOT FOUND**");
return 0;
} else if (sb.type<0 || sb.type>=H5G_NTYPES) {
} else if(sb.type < 0 || sb.type >= H5G_NTYPES) {
printf("Unknown type(%d)", sb.type);
sb.type = H5G_UNKNOWN;
}
if (sb.type>=0 && dispatch_g[sb.type].name) {
if(sb.type >= 0 && dispatch_g[sb.type].name)
fputs(dispatch_g[sb.type].name, stdout);
}
objno = (haddr_t)sb.objno[0] | ((haddr_t)sb.objno[1] << (8 * sizeof(long)));
/* If the object has already been printed then just show the object ID
* and return. */
if ((s=sym_lookup(&sb))) {
if((s = sym_lookup(&sb))) {
printf(", same as ");
display_string(stdout, s, TRUE);
printf("\n");
@ -1918,7 +1917,7 @@ list (hid_t group, const char *name, void *_iter)
puts("\"");
} /* end if */
} /* end if */
if(sb.type>=0 && dispatch_g[sb.type].list2)
if(sb.type >= 0 && dispatch_g[sb.type].list2)
(dispatch_g[sb.type].list2)(obj, fullname);
done:
@ -2340,7 +2339,7 @@ main (int argc, const char *argv[])
} /* end if */
/* list */
H5Giterate(file, oname, NULL, list, &iter);
H5Literate(file, oname, H5_INDEX_NAME, H5_ITER_INC, NULL, list, &iter, H5P_DEFAULT);
free(container);
} else if((root = H5Gopen2(file, "/", H5P_DEFAULT)) < 0) {
@ -2350,7 +2349,7 @@ main (int argc, const char *argv[])
/* Specified name is a non-group object -- list that object. The
* container for the object is everything up to the base name. */
iter.container = show_file_name_g ? fname : "/";
list(root, oname, &iter);
list(root, oname, NULL, &iter);
if(H5Gclose(root) < 0)
leave(1);
}

View File

@ -459,7 +459,7 @@ attribute_stats(iter_t *iter, const H5O_info_t *oi)
*/
static herr_t
group_stats(hid_t group, const char *name, const char *fullname,
const H5O_info_t *oi, H5G_iterate_t walk, iter_t *iter)
const H5O_info_t *oi, H5L_iterate_t walk, iter_t *iter)
{
hid_t gid; /* Group ID */
const char *last_container;
@ -525,7 +525,7 @@ group_stats(hid_t group, const char *name, const char *fullname,
iter->curr_depth++;
/* Recursively descend into current group's objects */
H5Giterate(group, name, NULL, walk, iter);
H5Literate(group, name, H5_INDEX_NAME, H5_ITER_INC, NULL, walk, iter, H5P_DEFAULT);
/* Revert current container info */
iter->container = last_container;
@ -742,7 +742,7 @@ dataset_stats(hid_t group, const char *name, const H5O_info_t *oi, iter_t *iter)
*-------------------------------------------------------------------------
*/
static herr_t
walk(hid_t group, const char *name, void *_iter)
walk(hid_t group, const char *name, const H5L_info_t *linfo, void *_iter)
{
iter_t *iter = (iter_t *)_iter;
H5O_info_t oi;
@ -1359,7 +1359,7 @@ main(int argc, const char *argv[])
for(i = 0; i < argc; i++) {
if(hand[i].obj) {
if(hand[i].flag) {
walk(fid, hand[i].obj, &iter);
walk(fid, hand[i].obj, NULL, &iter);
print_statistics(hand[i].obj, &iter);
}
}

View File

@ -894,9 +894,8 @@ h5tools_dump_simple_subset(FILE *stream, const h5tool_format_t *info, hid_t dset
if (count == 1)
flags |= END_OF_DATA;
for (i = 0; i < ctx.ndims; i++) {
for (i = 0; i < ctx.ndims; i++)
ctx.p_max_idx[i] = ctx.p_min_idx[i] + MIN(total_size[i], sm_size[i]);
}
/* print array indices. get the lower bound of the hyperslab and calulate
the element position at the start of hyperslab */

View File

@ -348,7 +348,7 @@ typedef struct h5tools_context_t {
size_t cur_column; /*current column for output */
size_t cur_elmt; /*current element/output line */
int need_prefix; /*is line prefix needed? */
int ndims; /*dimensionality */
unsigned ndims; /*dimensionality */
hsize_t p_min_idx[H5S_MAX_RANK]; /*min selected index */
hsize_t p_max_idx[H5S_MAX_RANK]; /*max selected index */
int prev_multiline; /*was prev datum multiline? */

View File

@ -339,7 +339,8 @@ lookup_ref_path(haddr_t ref)
*-------------------------------------------------------------------------
*/
herr_t
fill_ref_path_table(hid_t group, const char *obj_name, void *op_data)
fill_ref_path_table(hid_t group, const char *obj_name, const H5L_info_t UNUSED *linfo,
void *op_data)
{
const char *obj_prefix = (const char *)op_data;
H5G_stat_t statbuf;
@ -372,7 +373,7 @@ fill_ref_path_table(hid_t group, const char *obj_name, void *op_data)
/* Iterate over objects in this group, using this group's
* name as their prefix
*/
if(H5Giterate(group, obj_name, NULL, fill_ref_path_table, thepath) < 0) {
if(H5Literate(group, obj_name, H5_INDEX_NAME, H5_ITER_INC, NULL, fill_ref_path_table, thepath, H5P_DEFAULT) < 0) {
error_msg(progname, "unable to dump group \"%s\"\n", obj_name);
d_status = EXIT_FAILURE;
}

View File

@ -24,7 +24,7 @@ extern "C" {
int init_ref_path_table(hid_t fid);
const char *lookup_ref_path(haddr_t ref);
herr_t fill_ref_path_table(hid_t, const char *, void *);
herr_t fill_ref_path_table(hid_t, const char *, const H5L_info_t *, void *);
int get_next_xid(void);
haddr_t get_fake_xid (void);
haddr_t ref_path_table_lookup(const char *);

View File

@ -845,15 +845,15 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
if (h5tools_is_zero(vp, H5Tget_size(type))) {
h5tools_str_append(str, "NULL");
} else {
char name[1024];
char ref_name[1024];
obj = H5Rdereference(container, H5R_DATASET_REGION, vp);
region = H5Rget_region(container, H5R_DATASET_REGION, vp);
H5Gget_objinfo(obj, ".", FALSE, &sb);
/* get name of the dataset the region reference points to using H5Rget_name */
H5Rget_name(obj, H5R_DATASET_REGION, vp, (char*)name, 1024);
h5tools_str_append(str, info->dset_format, name);
H5Rget_name(obj, H5R_DATASET_REGION, vp, (char*)ref_name, 1024);
h5tools_str_append(str, info->dset_format, ref_name);
h5tools_str_dump_region(str, region, info);
H5Sclose(region);

View File

@ -46,7 +46,8 @@ static void dump_table(char* tablename, table_t *table);
#endif /* H5DUMP_DEBUG */
static void add_obj(table_t *table, haddr_t objno, char *objname, hbool_t recorded);
static char * build_obj_path_name(const char *prefix, const char *name);
static herr_t find_objs_cb(hid_t group, const char *name, void *op_data);
static herr_t find_objs_cb(hid_t group, const char *name, const H5L_info_t *info,
void *op_data);
/*-------------------------------------------------------------------------
@ -480,7 +481,7 @@ build_obj_path_name(const char *prefix, const char *name)
*-------------------------------------------------------------------------
*/
static herr_t
find_objs_cb(hid_t group, const char *name, void *op_data)
find_objs_cb(hid_t group, const char *name, const H5L_info_t UNUSED *linfo, void *op_data)
{
H5G_stat_t statbuf;
find_objs_t *info = (find_objs_t*)op_data;
@ -508,7 +509,7 @@ find_objs_cb(hid_t group, const char *name, void *op_data)
info->prefix = HDmalloc(tmp_len+1);
HDstrcpy(info->prefix, tmp);
if(H5Giterate(group, name, NULL, find_objs_cb, (void *)info) < 0)
if(H5Literate(group, name, H5_INDEX_NAME, H5_ITER_INC, NULL, find_objs_cb, (void *)info, H5P_DEFAULT) < 0)
ret_value = FAIL;
info->prefix = old_prefix;
@ -625,7 +626,7 @@ init_objs(hid_t fid, find_objs_t *info, table_t **group_table,
/* Find all shared objects */
return(H5Giterate(fid, "/", NULL, find_objs_cb, (void *)info));
return(H5Literate(fid, "/", H5_INDEX_NAME, H5_ITER_INC, NULL, find_objs_cb, (void *)info, H5P_DEFAULT));
}

View File

@ -371,19 +371,19 @@ static hssize_t get_nnames( hid_t loc_id, const char *group_name )
*-------------------------------------------------------------------------
*/
static herr_t opget_info( hid_t loc_id, const char *name, void *op_data)
static herr_t
opget_info(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *op_data)
{
H5G_stat_t statbuf;
H5G_stat_t statbuf;
if(H5Gget_objinfo(loc_id, name, FALSE, &statbuf) < 0)
return -1;
if (H5Gget_objinfo( loc_id, name, FALSE, &statbuf) < 0 )
return -1;
((trav_info_t *)op_data)->type = statbuf.type;
((trav_info_t *)op_data)->name = (char *)HDstrdup(name);
((trav_info_t *)op_data)->type = statbuf.type;
((trav_info_t *)op_data)->name = (char *)HDstrdup(name);
/* Define 1 for return. This will cause the iterator to stop */
return 1;
/* Define 1 for return. This will cause the iterator to stop */
return 1;
}
@ -410,20 +410,20 @@ static herr_t opget_info( hid_t loc_id, const char *name, void *op_data)
static herr_t get_name_type( hid_t loc_id,
const char *group_name,
int idx,
int _idx,
char **name,
H5G_obj_t *type )
{
trav_info_t info;
hsize_t idx = (hsize_t)_idx;
trav_info_t info;
if(H5Literate(loc_id, group_name, H5_INDEX_NAME, H5_ITER_INC, &idx, opget_info, (void *)&info, H5P_DEFAULT) < 0)
return -1;
if (H5Giterate( loc_id, group_name, &idx, opget_info, (void *)&info) < 0 )
return -1;
*name = info.name;
*type = info.type;
*name = info.name;
*type = info.type;
return 0;
return 0;
}
/*-------------------------------------------------------------------------