2
0
mirror of https://github.com/HDFGroup/hdf5.git synced 2025-04-24 17:51:25 +08:00

[svn-r14197] added attribute iteration orders to the XML code

tested: linux
This commit is contained in:
Pedro Vicente Nunes 2007-10-09 15:21:31 -05:00
parent 457d575761
commit fe58d51cea

@ -5297,6 +5297,8 @@ xml_dump_named_datatype(hid_t type, const char *name)
* Programmer: REMcG
*
* Modifications:
* Pedro Vicente, October 9, 2007
* added parameters to H5A(L)iterate to allow for other iteration orders
*
*-------------------------------------------------------------------------
*/
@ -5309,9 +5311,38 @@ xml_dump_group(hid_t gid, const char *name)
char type_name[1024], *tmp = NULL;
char *par = NULL;
int isRoot = 0;
char *ptrstr;
char *t_objname;
char *par_name;
char *ptrstr;
char *t_objname;
char *par_name;
unsigned crt_order_flags;
unsigned attr_crt_order_flags;
hid_t gcpl_id;
if ((gcpl_id = H5Gget_create_plist(gid)) < 0)
{
error_msg(progname, "error in getting group creation property list ID\n");
d_status = EXIT_FAILURE;
}
/* query the group creation properties for attributes */
if (H5Pget_attr_creation_order(gcpl_id, &attr_crt_order_flags) < 0)
{
error_msg(progname, "error in getting group creation properties\n");
d_status = EXIT_FAILURE;
}
/* query the group creation properties */
if(H5Pget_link_creation_order(gcpl_id, &crt_order_flags) < 0)
{
error_msg(progname, "error in getting group creation properties\n");
d_status = EXIT_FAILURE;
}
if(H5Pclose(gcpl_id) < 0) {
error_msg(progname, "error in closing group creation property list ID\n");
d_status = EXIT_FAILURE;
}
if(HDstrcmp(name, "/") == 0) {
isRoot = 1;
@ -5404,8 +5435,11 @@ xml_dump_group(hid_t gid, const char *name)
found_obj->displayed = TRUE;
/* 1. do all the attributes of the group */
H5Aiterate2(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL,
dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
if( (sort_by == H5_INDEX_CRT_ORDER) && (attr_crt_order_flags & H5P_CRT_ORDER_TRACKED))
H5Aiterate2(gid, ".", sort_by, sort_order, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
else
H5Aiterate2(gid, ".", H5_INDEX_NAME, sort_order, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
if(isRoot && unamedtype) {
unsigned u;
@ -5424,7 +5458,13 @@ xml_dump_group(hid_t gid, const char *name)
}
/* iterate through all the links */
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all_cb, NULL, H5P_DEFAULT);
if( (sort_by == H5_INDEX_CRT_ORDER) && (crt_order_flags & H5P_CRT_ORDER_TRACKED))
H5Literate(gid, ".", sort_by, sort_order, NULL, dump_all_cb, NULL, H5P_DEFAULT);
else
H5Literate(gid, ".", H5_INDEX_NAME, sort_order, NULL, dump_all_cb, NULL, H5P_DEFAULT);
}
free(t_name);
free(grpxid);
@ -5459,7 +5499,12 @@ xml_dump_group(hid_t gid, const char *name)
free(parentxid);
/* 1. do all the attributes of the group */
H5Aiterate2(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
if( (sort_by == H5_INDEX_CRT_ORDER) && (attr_crt_order_flags & H5P_CRT_ORDER_TRACKED))
H5Aiterate2(gid, ".", sort_by, sort_order, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
else
H5Aiterate2(gid, ".", H5_INDEX_NAME, sort_order, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
if(isRoot && unamedtype) {
unsigned u;
@ -5478,7 +5523,11 @@ xml_dump_group(hid_t gid, const char *name)
}
/* iterate through all the links */
H5Literate(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_all_cb, NULL, H5P_DEFAULT);
if( (sort_by == H5_INDEX_CRT_ORDER) && (crt_order_flags & H5P_CRT_ORDER_TRACKED))
H5Literate(gid, ".", sort_by, sort_order, NULL, dump_all_cb, NULL, H5P_DEFAULT);
else
H5Literate(gid, ".", H5_INDEX_NAME, sort_order, NULL, dump_all_cb, NULL, H5P_DEFAULT);
}
indent -= COL;
@ -5928,6 +5977,8 @@ xml_dump_fill_value(hid_t dcpl, hid_t type)
* Programmer: REMcG
*
* Modifications:
* Pedro Vicente, October 9, 2007
* added parameters to H5Aiterate2 to allow for other iteration orders
*
*-------------------------------------------------------------------------
*/
@ -5946,6 +5997,7 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset)
hsize_t tempi;
char *tmp;
char *t_name, *t_tmp, *t_prefix;
unsigned attr_crt_order_flags;
char *rstr = HDmalloc(100);
char *pstr = HDmalloc(100);
@ -5975,6 +6027,9 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset)
type = H5Dget_type(did);
space = H5Dget_space(did);
/* query the creation properties for attributes */
H5Pget_attr_creation_order(dcpl, &attr_crt_order_flags);
/* Print information about storage layout */
if(H5D_CHUNKED == H5Pget_layout(dcpl)) {
maxdims = H5Sget_simple_extent_ndims(space);
@ -6108,7 +6163,12 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset)
dump_function_table->dump_datatype_function(type);
indent += COL;
H5Aiterate2(did, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
if( (sort_by == H5_INDEX_CRT_ORDER) && (attr_crt_order_flags & H5P_CRT_ORDER_TRACKED))
H5Aiterate2(did, ".", sort_by, sort_order, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
else
H5Aiterate2(did, ".", H5_INDEX_NAME, sort_order, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT);
indent -= COL;
tempi = H5Dget_storage_size(did);