diff options
author | Patrick Lu <ptlu@hawkwind.ncsa.uiuc.edu> | 1999-06-09 18:43:07 (GMT) |
---|---|---|
committer | Patrick Lu <ptlu@hawkwind.ncsa.uiuc.edu> | 1999-06-09 18:43:07 (GMT) |
commit | fd02ea947d310d0d818ba24bc218caf0846e546f (patch) | |
tree | fd208018b4c63e69542c0f83656d1247f9577b58 | |
parent | bbe6a75cd06c497c9641f897b6251eff88421a09 (diff) | |
download | hdf5-fd02ea947d310d0d818ba24bc218caf0846e546f.zip hdf5-fd02ea947d310d0d818ba24bc218caf0846e546f.tar.gz hdf5-fd02ea947d310d0d818ba24bc218caf0846e546f.tar.bz2 |
[svn-r1321]
added some support for the object references. uses robb's h5dump_sprint to
print out the info
-rw-r--r-- | tools/h5dump.c | 9 | ||||
-rw-r--r-- | tools/h5tools.c | 45 |
2 files changed, 36 insertions, 18 deletions
diff --git a/tools/h5dump.c b/tools/h5dump.c index f50f487..5af3327 100644 --- a/tools/h5dump.c +++ b/tools/h5dump.c @@ -317,7 +317,9 @@ H5G_stat_t statbuf; } break; - + case H5T_REFERENCE: + printf("H5T_REFERENCE"); + break; default: printf( "unknown data type"); status = 1; @@ -471,7 +473,7 @@ hid_t attr_id, type, space; if (display_data) dump_data(attr_id, ATTRIBUTE_DATA); H5Tclose(type); H5Sclose(space); - H5Aclose (attr_id); + H5Aclose (attr_id); indentation (indent); end_obj(); @@ -929,6 +931,9 @@ hid_t type, space; case H5T_COMPOUND: dump_data(did, DATASET_DATA); break; + case H5T_REFERENCE: + dump_data(did, DATASET_DATA); + break; default: break; } diff --git a/tools/h5tools.c b/tools/h5tools.c index 4a9165d..cbeb10b 100644 --- a/tools/h5tools.c +++ b/tools/h5tools.c @@ -29,7 +29,7 @@ ProgType programtype = UNKNOWN; static void display_numeric_data(hsize_t hs_nelmts, hid_t p_type, unsigned char *sm_buf, size_t p_type_nbytes, hsize_t p_nelmts, hsize_t dim_n_size, - hsize_t elmtno); + hsize_t elmtno, hid_t container); static void display_string(hsize_t hs_nelmts, hid_t p_type, unsigned char *sm_buf, size_t p_type_nbytes, hsize_t p_nelmts, hsize_t dim_n_size, @@ -901,9 +901,14 @@ h5dump_sprint(h5dump_str_t *str/*in,out*/, const h5dump_t *info, H5Tclose(obj); break; default: - h5dump_str_append(str, "%u-", otype); - /* unable to close `obj' since we don't know the type */ - break; + if (programtype == H5LS) { + h5dump_str_append(str, "%u-", otype); + } + else if (programtype == H5DUMP) { + h5dump_str_append(str, "unknown object reference type"); + } + /* unable to close `obj' since we don't know the type */ + break; } /* Print OID */ @@ -1272,12 +1277,12 @@ h5dump_simple_dset(FILE *stream, const h5dump_t *info, hid_t dset, switch (H5Tget_class(p_type)) { case H5T_INTEGER: display_numeric_data (hs_nelmts, p_type, sm_buf, p_type_nbytes, - p_nelmts, dim_n_size, elmtno); + p_nelmts, dim_n_size, elmtno, dset); break; case H5T_FLOAT: display_numeric_data (hs_nelmts, p_type, sm_buf, p_type_nbytes, - p_nelmts, dim_n_size, elmtno); + p_nelmts, dim_n_size, elmtno, dset); break; case H5T_TIME: @@ -1301,6 +1306,9 @@ h5dump_simple_dset(FILE *stream, const h5dump_t *info, hid_t dset, compound_data = 0; break; + case H5T_REFERENCE: + display_numeric_data(hs_nelmts, p_type, sm_buf, p_type_nbytes, + p_nelmts, dim_n_size, elmtno, dset); default: break; } @@ -1723,7 +1731,7 @@ h5dump_mem(FILE *stream, const h5dump_t *info, hid_t type, hid_t space, */ static void display_numeric_data (hsize_t hs_nelmts, hid_t p_type, unsigned char *sm_buf, size_t p_type_nbytes, - hsize_t p_nelmts, hsize_t dim_n_size, hsize_t elmtno) { + hsize_t p_nelmts, hsize_t dim_n_size, hsize_t elmtno, hid_t container) { hsize_t i; /*char p_buf[256]; */ @@ -1755,7 +1763,9 @@ struct h5dump_str_t tempstr; for (i=0; i<hs_nelmts && (elmtno+i) < p_nelmts; i++) { h5dump_str_reset(&tempstr); - h5dump_sprint(&tempstr, &info, -1/*no container*/, p_type, sm_buf+i*p_type_nbytes); + // h5dump_sprint(&tempstr, &info, -1/*no container*/, p_type, sm_buf+i*p_type_nbytes); + h5dump_sprint(&tempstr, &info, container, p_type, sm_buf+i*p_type_nbytes); + if ((int)(strlen(out_buf)+tempstr.len+1) > (nCols-indent-COL)) { /* first row of member */ if (compound_data && (elmtno+i+1) == dim_n_size) @@ -2081,12 +2091,12 @@ int nmembs, i, j, k, ndims, perm[4]; switch (H5Tget_class(memb)) { case H5T_INTEGER: display_numeric_data - (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0) ; + (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0, -1) ; break; case H5T_FLOAT: display_numeric_data - (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0) ; + (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0, -1) ; break; case H5T_TIME: @@ -2240,12 +2250,12 @@ h5dump_simple(hid_t oid, hid_t p_type, int obj_data) switch (H5Tget_class(p_type)) { case H5T_INTEGER: display_numeric_data (hs_nelmts, p_type, sm_buf, p_type_nbytes, - p_nelmts, dim_n_size, elmtno); + p_nelmts, dim_n_size, elmtno, -1); break; case H5T_FLOAT: display_numeric_data (hs_nelmts, p_type, sm_buf, p_type_nbytes, - p_nelmts, dim_n_size, elmtno); + p_nelmts, dim_n_size, elmtno, -1); break; case H5T_TIME: @@ -2472,12 +2482,12 @@ int h5dump_attr(hid_t oid, hid_t p_type){ switch (H5Tget_class(p_type)) { case H5T_INTEGER: display_numeric_data (nelmts, p_type, sm_buf, p_type_nbytes, - nelmts, dim_n_size, 0); + nelmts, dim_n_size, 0, oid); break; case H5T_FLOAT: display_numeric_data (nelmts, p_type, sm_buf, p_type_nbytes, - nelmts, dim_n_size, 0); + nelmts, dim_n_size, 0, oid); break; case H5T_TIME: @@ -2499,9 +2509,12 @@ int h5dump_attr(hid_t oid, hid_t p_type){ display_compound_data (nelmts, p_type, sm_buf, p_type_nbytes, nelmts, 0); compound_data = 0; break; - + case H5T_REFERENCE: + display_numeric_data(nelmts, p_type, sm_buf, p_type_nbytes, + nelmts, dim_n_size, 0, oid); + break; default: break; } free(sm_buf); return (status); -} +}
\ No newline at end of file |