From 59b51a2ea72ff98586372a454adfd8c790a62734 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 4 Oct 2007 10:06:28 -0500 Subject: [svn-r14180] Description: Make H5Aiterate() versioned and change all internal use to H5Aiterate2() Leave some regression tests that exercise H5Aiterate1() Fix attribute display in h5dump & h5ls to be "by name" by default 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 2.6 (smirom) w/default API=1.6.x, 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 | 24 +- c++/src/H5Object.h | 1 - examples/h5_attribute.c | 39 +- hl/src/H5IM.c | 44 +- hl/src/H5LT.c | 48 +- src/H5Adense.c | 2 + src/H5Adeprec.c | 16 +- src/H5Aint.c | 2 + src/H5Apkg.h | 6 +- src/H5Apublic.h | 12 +- src/H5vers.txt | 1 + src/H5version.h | 17 + test/tattr.c | 100 ++- test/titerate.c | 70 +- tools/h5dump/h5dump.c | 26 +- tools/h5ls/h5ls.c | 9 +- tools/testfiles/tattr2.ls | 558 ++++++------- tools/testfiles/tref-escapes-at.h5.xml | 20 +- tools/testfiles/treference.ddl | 1426 ++++++++++++++++---------------- 19 files changed, 1219 insertions(+), 1202 deletions(-) diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp index 894cfef..494ee2c 100644 --- a/c++/src/H5Object.cpp +++ b/c++/src/H5Object.cpp @@ -33,9 +33,10 @@ namespace H5 { #ifndef DOXYGEN_SHOULD_SKIP_THIS // userAttrOpWrpr simply interfaces between the user's function and the -// C library function H5Aiterate; used to resolve the different prototype +// C library function H5Aiterate2; used to resolve the different prototype // problem. May be moved to Iterator later. -extern "C" herr_t userAttrOpWrpr( hid_t loc_id, const char* attr_name, void* op_data ) +extern "C" herr_t userAttrOpWrpr(hid_t loc_id, const char *attr_name, + const H5A_info_t *ainfo, void *op_data) { H5std_string s_attr_name = H5std_string( attr_name ); #ifdef NO_STATIC_CAST @@ -200,26 +201,29 @@ Attribute H5Object::openAttribute( const unsigned int idx ) const /// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5A.html#Annot-Iterate // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -int H5Object::iterateAttrs( attr_operator_t user_op, unsigned * idx, void *op_data ) +int H5Object::iterateAttrs( attr_operator_t user_op, unsigned *_idx, void *op_data ) { // store the user's function and data UserData4Aiterate* userData = new UserData4Aiterate; userData->opData = op_data; - userData->idx = idx; userData->op = user_op; userData->object = this; - // call the C library routine H5Aiterate to iterate the attributes - int ret_value = H5Aiterate( id, idx, userAttrOpWrpr, (void *) userData ); + // call the C library routine H5Aiterate2 to iterate the attributes + hsize_t idx = (hsize_t)*_idx; + int ret_value = H5Aiterate2(id, ".", H5_INDEX_NAME, H5_ITER_INC, &idx, userAttrOpWrpr, (void *) userData, H5P_DEFAULT); + // release memory delete userData; - if( ret_value >= 0 ) + if( ret_value >= 0 ) { + /* Pass back update index value to calling code */ + *_idx = (unsigned)idx; + return( ret_value ); - else // raise exception when H5Aiterate returns a negative value - { - throw AttributeIException(inMemFunc("iterateAttrs"), "H5Aiterate failed"); } + else // raise exception when H5Aiterate returns a negative value + throw AttributeIException(inMemFunc("iterateAttrs"), "H5Aiterate2 failed"); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index b576621..77de529 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -38,7 +38,6 @@ typedef void (*attr_operator_t)( H5Object& loc/*in*/, class UserData4Aiterate { // user data for attribute iteration public: - unsigned int* idx; attr_operator_t op; void* opData; H5Object* object; diff --git a/examples/h5_attribute.c b/examples/h5_attribute.c index e0549dd..4f55998 100644 --- a/examples/h5_attribute.c +++ b/examples/h5_attribute.c @@ -40,7 +40,7 @@ #define ANAME "Float attribute" /* Name of the array attribute */ #define ANAMES "Character attribute" /* Name of the string attribute */ -herr_t attr_info(hid_t loc_id, const char *name, void *opdata); +static herr_t attr_info(hid_t loc_id, const char *name, const H5A_info_t *ainfo, void *opdata); /* Operator function */ int @@ -209,7 +209,7 @@ main (void) /* * Get attribute info using iteration function. */ - ret = H5Aiterate(dataset, NULL, attr_info, NULL); + ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, attr_info, NULL, H5P_DEFAULT); /* * Close the dataset and the file. @@ -223,8 +223,8 @@ main (void) /* * Operator function. */ -herr_t -attr_info(hid_t loc_id, const char *name, void *opdata) +static herr_t +attr_info(hid_t loc_id, const char *name, const H5A_info_t *ainfo, void *opdata) { hid_t attr, atype, aspace; /* Attribute, datatype and dataspace identifiers */ int rank; @@ -245,9 +245,7 @@ attr_info(hid_t loc_id, const char *name, void *opdata) /* * Display attribute name. */ - printf("\n"); - printf("Name : "); - puts(name); + printf("\nName : %s\n", name); /* * Get attribute datatype, dataspace, rank, and dimensions. @@ -262,10 +260,11 @@ attr_info(hid_t loc_id, const char *name, void *opdata) */ if(rank > 0) { - printf("Rank : %d \n", rank); - printf("Dimension sizes : "); - for (i=0; i< rank; i++) printf("%d ", (int)sdim[i]); - printf("\n"); + printf("Rank : %d \n", rank); + printf("Dimension sizes : "); + for (i=0; i< rank; i++) + printf("%d ", (int)sdim[i]); + printf("\n"); } /* @@ -273,14 +272,15 @@ attr_info(hid_t loc_id, const char *name, void *opdata) */ if (H5T_FLOAT == H5Tget_class(atype)) { - printf("Type : FLOAT \n"); - npoints = H5Sget_simple_extent_npoints(aspace); - float_array = (float *)malloc(sizeof(float)*(int)npoints); - ret = H5Aread(attr, atype, float_array); - printf("Values : "); - for( i = 0; i < (int)npoints; i++) printf("%f ", float_array[i]); - printf("\n"); - free(float_array); + printf("Type : FLOAT \n"); + npoints = H5Sget_simple_extent_npoints(aspace); + float_array = (float *)malloc(sizeof(float)*(int)npoints); + ret = H5Aread(attr, atype, float_array); + printf("Values : "); + for( i = 0; i < (int)npoints; i++) + printf("%f ", float_array[i]); + printf("\n"); + free(float_array); } /* @@ -292,3 +292,4 @@ attr_info(hid_t loc_id, const char *name, void *opdata) return 0; } + diff --git a/hl/src/H5IM.c b/hl/src/H5IM.c index 30a479e..70baf26 100644 --- a/hl/src/H5IM.c +++ b/hl/src/H5IM.c @@ -166,30 +166,23 @@ herr_t H5IMmake_image_24bit( hid_t loc_id, * *------------------------------------------------------------------------- */ - -static herr_t find_palette( hid_t loc_id, const char *name, void *op_data ) +static herr_t +find_palette(hid_t loc_id, const char *name, const H5A_info_t *ainfo, + void *op_data) { + int ret = H5_ITER_CONT; - /* Define a default zero value for return. This will cause the iterator to continue if - * the palette attribute is not found yet. - */ - - int ret = 0; - - /* Shut compiler */ - loc_id=loc_id; - op_data=op_data; - - /* Define a positive value for return value if the attribute was found. This will - * cause the iterator to immediately return that positive value, - * indicating short-circuit success - */ - - if( strcmp( name, "PALETTE" ) == 0 ) - ret = 1; + /* Shut compiler up */ + loc_id = loc_id; ainfo = ainfo; op_data = op_data; + /* Define a positive value for return value if the attribute was found. This will + * cause the iterator to immediately return that positive value, + * indicating short-circuit success + */ + if(strcmp(name, "PALETTE") == 0) + ret = H5_ITER_STOP; - return ret; + return ret; } @@ -205,7 +198,7 @@ static herr_t find_palette( hid_t loc_id, const char *name, void *op_data ) * Date: May 11, 2001 * * Comments: - * The function uses H5Aiterate with the operator function find_palette + * The function uses H5Aiterate2 with the operator function find_palette * * Modifications: * @@ -214,14 +207,7 @@ static herr_t find_palette( hid_t loc_id, const char *name, void *op_data ) herr_t H5IM_find_palette( hid_t loc_id ) { - - unsigned int attr_num; /* Starting attribute to look up */ - herr_t ret; - - attr_num = 0; - ret = H5Aiterate( loc_id, &attr_num, find_palette, 0 ); - - return ret; + return H5Aiterate2(loc_id, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, find_palette, NULL, H5P_DEFAULT); } diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c index e26669f..6e47549 100644 --- a/hl/src/H5LT.c +++ b/hl/src/H5LT.c @@ -1619,31 +1619,23 @@ herr_t H5LTset_attribute_double( hid_t loc_id, * *------------------------------------------------------------------------- */ - -static herr_t find_attr( hid_t loc_id, const char *name, void *op_data) +static herr_t +find_attr(hid_t loc_id, const char *name, const H5A_info_t *ainfo, + void *op_data) { + int ret = H5_ITER_CONT; - /* Define a default zero value for return. This will cause the iterator to continue if - * the palette attribute is not found yet. - */ - - int ret = 0; - - char *attr_name = (char*)op_data; - - /* Shut the compiler up */ - loc_id=loc_id; - - /* Define a positive value for return value if the attribute was found. This will - * cause the iterator to immediately return that positive value, - * indicating short-circuit success - */ - - if( strcmp( name, attr_name ) == 0 ) - ret = 1; + /* Shut compiler up */ + loc_id = loc_id; ainfo = ainfo; + /* Define a positive value for return value if the attribute 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 = H5_ITER_STOP; - return ret; + return ret; } @@ -1680,7 +1672,7 @@ herr_t H5LTfind_attribute( hid_t loc_id, const char* attr_name ) * Date: June 21, 2001 * * Comments: - * The function uses H5Aiterate with the operator function find_attr + * The function uses H5Aiterate2 with the operator function find_attr * * Return: * Success: The return value of the first operator that @@ -1694,16 +1686,10 @@ herr_t H5LTfind_attribute( hid_t loc_id, const char* attr_name ) *------------------------------------------------------------------------- */ -herr_t H5LT_find_attribute( hid_t loc_id, const char* attr_name ) +herr_t +H5LT_find_attribute( hid_t loc_id, const char* attr_name ) { - - unsigned int attr_num; - herr_t ret; - - attr_num = 0; - ret = H5Aiterate( loc_id, &attr_num, find_attr, (void *)attr_name ); - - return ret; + return H5Aiterate2(loc_id, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, find_attr, (void *)attr_name, H5P_DEFAULT); } diff --git a/src/H5Adense.c b/src/H5Adense.c index 8549a10..de6bc8c 100644 --- a/src/H5Adense.c +++ b/src/H5Adense.c @@ -1024,10 +1024,12 @@ H5A_dense_iterate_bt2_cb(const void *_record, void *_bt2_udata) break; } +#ifndef H5_NO_DEPRECATED_SYMBOLS case H5A_ATTR_OP_APP: /* Make the application callback */ ret_value = (bt2_udata->attr_op->u.app_op)(bt2_udata->loc_id, fh_udata.attr->name, bt2_udata->op_data); break; +#endif /* H5_NO_DEPRECATED_SYMBOLS */ case H5A_ATTR_OP_LIB: /* Call the library's callback */ diff --git a/src/H5Adeprec.c b/src/H5Adeprec.c index 75f5191..9ca3d5a 100644 --- a/src/H5Adeprec.c +++ b/src/H5Adeprec.c @@ -377,19 +377,18 @@ H5Arename1(hid_t loc_id, const char *old_name, const char *new_name) done: FUNC_LEAVE_API(ret_value) } /* H5Arename1() */ -#endif /* H5_NO_DEPRECATED_SYMBOLS */ /*-------------------------------------------------------------------------- NAME - H5Aiterate + H5Aiterate1 PURPOSE Calls a user's function for each attribute on an object USAGE - herr_t H5Aiterate (loc_id, attr_num, op, data) + herr_t H5Aiterate1(loc_id, attr_num, op, data) hid_t loc_id; IN: Object (dataset or group) to be iterated over unsigned *attr_num; IN/OUT: Starting (IN) & Ending (OUT) attribute number - H5A_operator_t op; IN: User's function to pass each attribute to + H5A_operator1_t op; IN: User's function to pass each attribute to void *op_data; IN/OUT: User's data to pass through to iterator operator function RETURNS Returns a negative value if something is wrong, the return value of the @@ -414,16 +413,18 @@ done: C. Negative causes the iterator to immediately return that value, indicating failure. The iterator can be restarted at the next attribute. + NOTE + Deprecated in favor of H5Aiterate2 --------------------------------------------------------------------------*/ herr_t -H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, void *op_data) +H5Aiterate1(hid_t loc_id, unsigned *attr_num, H5A_operator1_t op, void *op_data) { H5A_attr_iter_op_t attr_op; /* Attribute operator */ hsize_t start_idx; /* Index of attribute to start iterating at */ hsize_t last_attr; /* Index of last attribute examined */ herr_t ret_value; /* Return value */ - FUNC_ENTER_API(H5Aiterate, FAIL) + FUNC_ENTER_API(H5Aiterate1, FAIL) H5TRACE4("e", "i*Iux*x", loc_id, attr_num, op, op_data); /* check arguments */ @@ -445,9 +446,8 @@ H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, void *op_data) done: FUNC_LEAVE_API(ret_value) -} /* H5Aiterate() */ +} /* H5Aiterate1() */ -#ifndef H5_NO_DEPRECATED_SYMBOLS /*-------------------------------------------------------------------------- NAME diff --git a/src/H5Aint.c b/src/H5Aint.c index 6293797..c08c6cf 100644 --- a/src/H5Aint.c +++ b/src/H5Aint.c @@ -554,10 +554,12 @@ H5A_attr_iterate_table(const H5A_attr_table_t *atable, hsize_t skip, break; } +#ifndef H5_NO_DEPRECATED_SYMBOLS case H5A_ATTR_OP_APP: /* Make the application callback */ ret_value = (attr_op->u.app_op)(loc_id, atable->attrs[u].name, op_data); break; +#endif /* H5_NO_DEPRECATED_SYMBOLS */ case H5A_ATTR_OP_LIB: /* Call the library's callback */ diff --git a/src/H5Apkg.h b/src/H5Apkg.h index 99cfe5d..f72de64 100644 --- a/src/H5Apkg.h +++ b/src/H5Apkg.h @@ -161,12 +161,16 @@ typedef herr_t (*H5A_lib_iterate_t)(const H5A_t *attr, void *op_data); /* Describe kind of callback to make for each attribute */ struct H5A_attr_iter_op_t { enum { +#ifndef H5_NO_DEPRECATED_SYMBOLS H5A_ATTR_OP_APP, /* Application callback */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ H5A_ATTR_OP_APP2, /* Revised application callback */ H5A_ATTR_OP_LIB /* Library internal callback */ } op_type; union { - H5A_operator_t app_op; /* Application callback for each attribute */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + H5A_operator1_t app_op; /* Application callback for each attribute */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ H5A_operator2_t app_op2; /* Revised application callback for each attribute */ H5A_lib_iterate_t lib_op; /* Library internal callback for each attribute */ } u; diff --git a/src/H5Apublic.h b/src/H5Apublic.h index f154261..d20ad8f 100644 --- a/src/H5Apublic.h +++ b/src/H5Apublic.h @@ -36,10 +36,6 @@ typedef struct { hsize_t data_size; /* Size of raw data */ } H5A_info_t; -/* Typedef for H5Aiterate() callbacks */ -typedef herr_t (*H5A_operator_t)(hid_t location_id/*in*/, - const char *attr_name/*in*/, void *operator_data/*in,out*/); - /* Typedef for H5Aiterate2() callbacks */ typedef herr_t (*H5A_operator2_t)(hid_t location_id/*in*/, const char *attr_name/*in*/, const H5A_info_t *ainfo/*in*/, void *op_data/*in,out*/); @@ -89,8 +85,6 @@ H5_DLL hid_t H5Acreate(hid_t loc_id, const char *name, hid_t type_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); H5_DLL int H5Aget_num_attrs(hid_t loc_id); -H5_DLL herr_t H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, - void *op_data); /* Symbols defined for compatibility with previous versions of the HDF5 API. * @@ -103,10 +97,16 @@ H5_DLL herr_t H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, /* Typedefs */ +/* Typedef for H5Aiterate1() callbacks */ +typedef herr_t (*H5A_operator1_t)(hid_t location_id/*in*/, + const char *attr_name/*in*/, void *operator_data/*in,out*/); + /* Function prototypes */ 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); +H5_DLL herr_t H5Aiterate1(hid_t loc_id, unsigned *attr_num, H5A_operator1_t op, + void *op_data); #endif /* H5_NO_DEPRECATED_SYMBOLS */ diff --git a/src/H5vers.txt b/src/H5vers.txt index 17dde82..fa7200a 100644 --- a/src/H5vers.txt +++ b/src/H5vers.txt @@ -46,6 +46,7 @@ # (although not required, it's easier to compare this file with the headers # generated if the list below is in alphanumeric sort order - QAK) FUNCTION: H5Adelete; ; v10, v18 +FUNCTION: H5Aiterate; H5A_operator; v10, v18 FUNCTION: H5Arename; ; v16, v18 FUNCTION: H5Eclear; ; v10, v18 FUNCTION: H5Eget_auto; ; v10, v18 diff --git a/src/H5version.h b/src/H5version.h index a6c8414..1a84886 100644 --- a/src/H5version.h +++ b/src/H5version.h @@ -42,6 +42,10 @@ #define H5Adelete_vers 1 #endif /* !defined(H5Adelete_vers) */ +#if !defined(H5Aiterate_vers) +#define H5Aiterate_vers 1 +#endif /* !defined(H5Aiterate_vers) */ + #if !defined(H5Arename_vers) #define H5Arename_vers 1 #endif /* !defined(H5Arename_vers) */ @@ -122,6 +126,19 @@ #error "H5Adelete_vers set to invalid value" #endif /* H5Adelete_vers */ +#if !defined(H5Aiterate_vers) || H5Aiterate_vers == 2 +#ifndef H5Aiterate_vers +#define H5Aiterate_vers 2 +#endif /* H5Aiterate_vers */ +#define H5Aiterate H5Aiterate2 +#define H5A_operator_t H5A_operator2_t +#elif H5Aiterate_vers == 1 +#define H5Aiterate H5Aiterate1 +#define H5A_operator_t H5A_operator1_t +#else /* H5Aiterate_vers */ +#error "H5Aiterate_vers set to invalid value" +#endif /* H5Aiterate_vers */ + #if !defined(H5Arename_vers) || H5Arename_vers == 2 #ifndef H5Arename_vers #define H5Arename_vers 2 diff --git a/test/tattr.c b/test/tattr.c index 8a07cae..6800269 100644 --- a/test/tattr.c +++ b/test/tattr.c @@ -142,7 +142,8 @@ typedef struct { hbool_t *visited; /* Pointer to array of "visited attribute" flags */ } attr_iter_info_t; -static herr_t attr_op1(hid_t loc_id, const char *name, void *op_data); +static herr_t attr_op1(hid_t loc_id, const char *name, const H5A_info_t *ainfo, + void *op_data); @@ -1362,32 +1363,34 @@ test_attr_mult_read(hid_t fapl) ** attr_op1(): Attribute operator ** ****************************************************************/ -herr_t attr_op1(hid_t UNUSED loc_id, const char *name, void *op_data) +static herr_t +attr_op1(hid_t UNUSED loc_id, const char *name, const H5A_info_t UNUSED *ainfo, + void *op_data) { - int *count=(int *)op_data; - herr_t ret=0; + int *count = (int *)op_data; + herr_t ret = 0; switch(*count) { case 0: - if(HDstrcmp(name,ATTR1_NAME)) - TestErrPrintf("attribute name different: name=%s, should be %s\n",name,ATTR1_NAME); + if(HDstrcmp(name, ATTR1_NAME)) + TestErrPrintf("attribute name different: name=%s, should be %s\n", name, ATTR1_NAME); (*count)++; break; case 1: - if(HDstrcmp(name,ATTR2_NAME)) - TestErrPrintf("attribute name different: name=%s, should be %s\n",name,ATTR2_NAME); + if(HDstrcmp(name, ATTR2_NAME)) + TestErrPrintf("attribute name different: name=%s, should be %s\n", name, ATTR2_NAME); (*count)++; break; case 2: - if(HDstrcmp(name,ATTR3_NAME)) - TestErrPrintf("attribute name different: name=%s, should be %s\n",name,ATTR3_NAME); + if(HDstrcmp(name, ATTR3_NAME)) + TestErrPrintf("attribute name different: name=%s, should be %s\n", name, ATTR3_NAME); (*count)++; break; default: - ret=-1; + ret = -1; break; } /* end switch() */ @@ -1406,7 +1409,6 @@ test_attr_iterate(hid_t fapl) hid_t file; /* HDF5 File ID */ hid_t dataset; /* Dataset ID */ hid_t sid; /* Dataspace ID */ - unsigned start; /* Starting attribute to look up */ int count; /* operator data for the iterator */ herr_t ret; /* Generic return value */ @@ -1418,11 +1420,11 @@ test_attr_iterate(hid_t fapl) CHECK(file, FAIL, "H5Fopen"); /* Create a dataspace */ - sid=H5Screate(H5S_SCALAR); + sid = H5Screate(H5S_SCALAR); CHECK(sid, FAIL, "H5Screate"); /* Create a new dataset */ - dataset=H5Dcreate(file,DSET2_NAME,H5T_NATIVE_INT,sid,H5P_DEFAULT); + dataset = H5Dcreate(file, DSET2_NAME, H5T_NATIVE_INT, sid, H5P_DEFAULT); CHECK(dataset, FAIL, "H5Dcreate"); /* Close dataspace */ @@ -1430,32 +1432,30 @@ test_attr_iterate(hid_t fapl) CHECK(ret, FAIL, "H5Sclose"); /* Verify the correct number of attributes */ - ret=H5Aget_num_attrs(dataset); + ret = H5Aget_num_attrs(dataset); VERIFY(ret, 0, "H5Aget_num_attrs"); /* Iterate over attributes on dataset */ - start = 0; count = 0; - ret = H5Aiterate(dataset, &start, attr_op1, &count); - VERIFY(ret, 0, "H5Aiterate"); + ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, attr_op1, &count, H5P_DEFAULT); + VERIFY(ret, 0, "H5Aiterate2"); /* Close dataset */ ret = H5Dclose(dataset); CHECK(ret, FAIL, "H5Dclose"); /* Open existing dataset w/attributes */ - dataset=H5Dopen(file,DSET1_NAME); + dataset = H5Dopen(file, DSET1_NAME); CHECK(dataset, FAIL, "H5Dopen"); /* Verify the correct number of attributes */ - ret=H5Aget_num_attrs(dataset); + ret = H5Aget_num_attrs(dataset); VERIFY(ret, 3, "H5Aget_num_attrs"); /* Iterate over attributes on dataset */ - start=0; - count=0; - ret = H5Aiterate(dataset,&start,attr_op1,&count); - VERIFY(ret, 0, "H5Aiterate"); + count = 0; + ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, attr_op1, &count, H5P_DEFAULT); + VERIFY(ret, 0, "H5Aiterate2"); /* Close dataset */ ret = H5Dclose(dataset); @@ -5608,17 +5608,19 @@ HDfprintf(stderr, "op_data->curr = %Hd\n", op_data->curr); return(H5_ITER_CONT); } /* end attr_iterate2_cb() */ +#ifndef H5_NO_DEPRECATED_SYMBOLS /**************************************************************** ** -** attr_iterate_cb(): Attribute operator +** attr_iterate1_cb(): Attribute operator ** ****************************************************************/ static herr_t -attr_iterate_cb(hid_t loc_id, const char *attr_name, void *_op_data) +attr_iterate1_cb(hid_t loc_id, const char *attr_name, void *_op_data) { return(attr_iterate2_cb(loc_id, attr_name, NULL, _op_data)); -} /* end attr_iterate_cb() */ +} /* end attr_iterate1_cb() */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ /*------------------------------------------------------------------------- @@ -5662,7 +5664,9 @@ attr_iterate_check(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, { unsigned v; /* Local index variable */ hsize_t skip; /* # of attributes to skip on object */ - unsigned oskip; /* # of attributes to skip on object, with H5Aiterate */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + unsigned oskip; /* # of attributes to skip on object, with H5Aiterate1 */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ int old_nerrs; /* Number of errors when entering this check */ herr_t ret; /* Generic return value */ @@ -5685,20 +5689,22 @@ attr_iterate_check(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, VERIFY(iter_info->visited[v], TRUE, "H5Aiterate2"); - /* Iterate over attributes on object, with H5Aiterate */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + /* Iterate over attributes on object, with H5Aiterate1 */ iter_info->nskipped = oskip = 0; iter_info->order = order; iter_info->stop = -1; iter_info->ncalled = 0; iter_info->curr = order != H5_ITER_DEC ? 0 : (max_attrs - 1); HDmemset(iter_info->visited, 0, sizeof(hbool_t) * iter_info->max_visit); - ret = H5Aiterate(obj_id, &oskip, attr_iterate_cb, iter_info); - CHECK(ret, FAIL, "H5Aiterate"); + ret = H5Aiterate1(obj_id, &oskip, attr_iterate1_cb, iter_info); + CHECK(ret, FAIL, "H5Aiterate1"); /* Verify that we visited all the attributes */ - VERIFY(skip, max_attrs, "H5Aiterate"); + VERIFY(skip, max_attrs, "H5Aiterate1"); for(v = 0; v < max_attrs; v++) - VERIFY(iter_info->visited[v], TRUE, "H5Aiterate"); + VERIFY(iter_info->visited[v], TRUE, "H5Aiterate1"); +#endif /* H5_NO_DEPRECATED_SYMBOLS */ /* Skip over some attributes on object */ @@ -5733,25 +5739,26 @@ attr_iterate_check(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, } /* end else */ - /* Skip over some attributes on object, with H5Aiterate */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + /* Skip over some attributes on object, with H5Aiterate1 */ iter_info->nskipped = oskip = max_attrs / 2; iter_info->order = order; iter_info->stop = -1; iter_info->ncalled = 0; iter_info->curr = order != H5_ITER_DEC ? (unsigned)oskip : ((max_attrs - 1) - oskip); HDmemset(iter_info->visited, 0, sizeof(hbool_t) * iter_info->max_visit); - ret = H5Aiterate(obj_id, &oskip, attr_iterate_cb, iter_info); - CHECK(ret, FAIL, "H5Aiterate"); + ret = H5Aiterate1(obj_id, &oskip, attr_iterate1_cb, iter_info); + CHECK(ret, FAIL, "H5Aiterate1"); /* Verify that we visited all the links */ - VERIFY(oskip, max_attrs, "H5Aiterate"); + VERIFY(oskip, max_attrs, "H5Aiterate1"); if(order == H5_ITER_INC) { for(v = 0; v < (max_attrs / 2); v++) - VERIFY(iter_info->visited[v + (max_attrs / 2)], TRUE, "H5Aiterate"); + VERIFY(iter_info->visited[v + (max_attrs / 2)], TRUE, "H5Aiterate1"); } /* end if */ else if(order == H5_ITER_DEC) { for(v = 0; v < (max_attrs / 2); v++) - VERIFY(iter_info->visited[v], TRUE, "H5Aiterate"); + VERIFY(iter_info->visited[v], TRUE, "H5Aiterate1"); } /* end if */ else { unsigned nvisit = 0; /* # of links visited */ @@ -5761,8 +5768,9 @@ attr_iterate_check(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, if(iter_info->visited[v] == TRUE) nvisit++; - VERIFY(skip, (max_attrs / 2), "H5Aiterate"); + VERIFY(skip, (max_attrs / 2), "H5Aiterate1"); } /* end else */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ /* Iterate over attributes on object, stopping in the middle */ @@ -5778,17 +5786,19 @@ attr_iterate_check(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, VERIFY(iter_info->ncalled, 3, "H5Aiterate2"); - /* Iterate over attributes on object, stopping in the middle, with H5Aiterate() */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + /* Iterate over attributes on object, stopping in the middle, with H5Aiterate1() */ iter_info->nskipped = oskip = 0; iter_info->order = order; iter_info->stop = 3; iter_info->ncalled = 0; iter_info->curr = order != H5_ITER_DEC ? 0 : (max_attrs - 1); HDmemset(iter_info->visited, 0, sizeof(hbool_t) * iter_info->max_visit); - ret = H5Aiterate(obj_id, &oskip, attr_iterate_cb, iter_info); - CHECK(ret, FAIL, "H5Aiterate"); - VERIFY(ret, CORDER_ITER_STOP, "H5Aiterate2"); - VERIFY(iter_info->ncalled, 3, "H5Aiterate2"); + ret = H5Aiterate1(obj_id, &oskip, attr_iterate1_cb, iter_info); + CHECK(ret, FAIL, "H5Aiterate1"); + VERIFY(ret, CORDER_ITER_STOP, "H5Aiterate1"); + VERIFY(iter_info->ncalled, 3, "H5Aiterate1"); +#endif /* H5_NO_DEPRECATED_SYMBOLS */ /* Check for iteration routine indicating failure */ diff --git a/test/titerate.c b/test/titerate.c index 175a5a9..81c5c78 100644 --- a/test/titerate.c +++ b/test/titerate.c @@ -65,7 +65,8 @@ 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); +herr_t aiter_cb(hid_t group, const char *name, const H5A_info_t *ainfo, + void *op_data); /**************************************************************** ** @@ -344,7 +345,8 @@ test_iter_group(hid_t fapl, hbool_t new_format) ** ****************************************************************/ herr_t -aiter_cb(hid_t UNUSED group, const char *name, void *op_data) +aiter_cb(hid_t UNUSED group, const char *name, const H5A_info_t UNUSED *ainfo, + void *op_data) { iter_info *info = (iter_info *)op_data; static int count = 0; @@ -385,7 +387,7 @@ static void test_iter_attr(hid_t fapl, hbool_t new_format) hid_t filespace; /* Common dataspace ID */ hid_t attribute; /* Attribute ID */ int i; /* counting variable */ - unsigned idx; /* Index in the attribute list */ + hsize_t idx; /* Index in the attribute list */ char name[NAMELEN]; /* temporary name buffer */ char *anames[NATTR]; /* Names of the attributes created */ iter_info info; /* Custom iteration information */ @@ -398,88 +400,88 @@ static void test_iter_attr(hid_t fapl, hbool_t new_format) file = H5Fcreate(DATAFILE, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(file, FAIL, "H5Fcreate"); - filespace=H5Screate(H5S_SCALAR); + filespace = H5Screate(H5S_SCALAR); CHECK(filespace, FAIL, "H5Screate"); dataset = H5Dcreate(file, "Dataset", H5T_NATIVE_INT, filespace, H5P_DEFAULT); CHECK(dataset, FAIL, "H5Dcreate"); - for(i=0; i< NATTR; i++) { - sprintf(name,"Attribute %d",i); + for(i = 0; i < NATTR; i++) { + sprintf(name, "Attribute %02d", i); attribute = H5Acreate(dataset, name, H5T_NATIVE_INT, filespace, H5P_DEFAULT); CHECK(attribute, FAIL, "H5Acreate"); /* Keep a copy of the attribute names around for later */ - anames[i]=HDstrdup(name); + anames[i] = HDstrdup(name); CHECK(anames[i], NULL, "strdup"); - ret=H5Aclose(attribute); + ret = H5Aclose(attribute); CHECK(ret, FAIL, "H5Aclose"); - } + } /* end for */ /* Close everything up */ - ret=H5Dclose(dataset); + ret = H5Dclose(dataset); CHECK(ret, FAIL, "H5Dclose"); - ret=H5Sclose(filespace); + ret = H5Sclose(filespace); CHECK(ret, FAIL, "H5Sclose"); - ret=H5Fclose(file); + ret = H5Fclose(file); CHECK(ret, FAIL, "H5Fclose"); /* Iterate through the attributes on the dataset in various ways */ - file=H5Fopen(DATAFILE, H5F_ACC_RDONLY, fapl); + file = H5Fopen(DATAFILE, H5F_ACC_RDONLY, fapl); CHECK(file, FAIL, "H5Fopen"); - dataset=H5Dopen(file, "Dataset"); + dataset = H5Dopen(file, "Dataset"); CHECK(dataset, FAIL, "H5Dopen"); /* Test invalid indices for starting iteration */ - info.command=RET_ZERO; + info.command = RET_ZERO; /* Test skipping exactly as many attributes as there are */ - idx=NATTR; + idx = NATTR; H5E_BEGIN_TRY { - ret=H5Aiterate(dataset,&idx,aiter_cb,&info); + ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, &idx, aiter_cb, &info, H5P_DEFAULT); } H5E_END_TRY; - VERIFY(ret, FAIL, "H5Aiterate"); + VERIFY(ret, FAIL, "H5Aiterate2"); /* Test skipping more attributes than there are */ - idx=NATTR+1; + idx = NATTR + 1; H5E_BEGIN_TRY { - ret=H5Aiterate(dataset,&idx,aiter_cb,&info); + ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, &idx, aiter_cb, &info, H5P_DEFAULT); } H5E_END_TRY; - VERIFY(ret, FAIL, "H5Aiterate"); + VERIFY(ret, FAIL, "H5Aiterate2"); /* Test all attributes on dataset, when callback always returns 0 */ info.command = RET_ZERO; idx = 0; - if((ret = H5Aiterate(dataset, &idx, aiter_cb, &info)) > 0) + if((ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, &idx, aiter_cb, &info, H5P_DEFAULT)) > 0) TestErrPrintf("Attribute iteration function didn't return zero correctly!\n"); /* Test all attributes on dataset, when callback always returns 1 */ /* This also tests the "restarting" ability, because the index changes */ info.command = RET_TWO; idx = i = 0; - while((ret = H5Aiterate(dataset, &idx, aiter_cb, &info)) > 0) { + while((ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, &idx, aiter_cb, &info, H5P_DEFAULT)) > 0) { /* Verify return value from iterator gets propagated correctly */ - VERIFY(ret, 2, "H5Aiterate"); + VERIFY(ret, 2, "H5Aiterate2"); /* Increment the number of times "2" is returned */ i++; /* Verify that the index is the correct value */ - VERIFY(idx, (unsigned)i, "H5Aiterate"); + VERIFY(idx, (unsigned)i, "H5Aiterate2"); /* Don't check name when new format is used */ if(!new_format) { /* Verify that the correct name is retrieved */ - if(HDstrcmp(info.name, anames[idx - 1]) != 0) - TestErrPrintf("%u: Attribute iteration function didn't set names correctly, info.name = '%s', anames[idx - 1] = '%s'!\n", __LINE__, info.name, anames[idx - 1]); + if(HDstrcmp(info.name, anames[(size_t)idx - 1]) != 0) + TestErrPrintf("%u: Attribute iteration function didn't set names correctly, info.name = '%s', anames[%u] = '%s'!\n", __LINE__, info.name, (unsigned)(idx - 1), anames[(size_t)idx - 1]); } /* end if */ } /* end while */ - VERIFY(ret, -1, "H5Aiterate"); + VERIFY(ret, -1, "H5Aiterate2"); if(i != 50 || idx != 50) TestErrPrintf("%u: Attribute iteration function didn't perform multiple iterations correctly!\n", __LINE__); @@ -488,24 +490,24 @@ static void test_iter_attr(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 = H5Aiterate(dataset, &idx, aiter_cb, &info)) > 0) { + while((ret = H5Aiterate2(dataset, ".", H5_INDEX_NAME, H5_ITER_INC, &idx, aiter_cb, &info, H5P_DEFAULT)) > 0) { /* Verify return value from iterator gets propagated correctly */ - VERIFY(ret, 1, "H5Aiterate"); + VERIFY(ret, 1, "H5Aiterate2"); /* Increment the number of times "1" is returned */ i++; /* Verify that the index is the correct value */ - VERIFY(idx, (unsigned)i + 10, "H5Aiterate"); + VERIFY(idx, (unsigned)i + 10, "H5Aiterate2"); /* Don't check name when new format is used */ if(!new_format) { /* Verify that the correct name is retrieved */ - if(HDstrcmp(info.name, anames[idx - 1]) != 0) - TestErrPrintf("%u: Attribute iteration function didn't set names correctly, info.name = '%s', anames[idx - 1] = '%s'!\n", __LINE__, info.name, anames[idx - 1]); + if(HDstrcmp(info.name, anames[(size_t)idx - 1]) != 0) + TestErrPrintf("%u: Attribute iteration function didn't set names correctly, info.name = '%s', anames[%u] = '%s'!\n", __LINE__, info.name, (unsigned)(idx - 1), anames[(size_t)idx - 1]); } /* end if */ } /* end while */ - VERIFY(ret, -1, "H5Aiterate"); + VERIFY(ret, -1, "H5Aiterate2"); if(i != 40 || idx != 50) TestErrPrintf("%u: Attribute iteration function didn't perform multiple iterations correctly!\n", __LINE__); diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index bceb4be..7a924de 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -501,7 +501,7 @@ static void dump_named_datatype(hid_t, const char *); static void dump_dataset(hid_t, const char *, struct subset_t *); static void dump_dataspace(hid_t space); static void dump_datatype(hid_t type); -static herr_t dump_attr(hid_t, const char *, void *); +static herr_t dump_attr(hid_t, const char *, const H5A_info_t *, void *); static void dump_data(hid_t, int, struct subset_t *, int); static void dump_dcpl(hid_t dcpl, hid_t type_id, hid_t obj_id); static void dump_comment(hid_t obj_id); @@ -515,7 +515,7 @@ static void xml_dump_named_datatype(hid_t, const char *); static void xml_dump_dataset(hid_t, const char *, struct subset_t *); static void xml_dump_dataspace(hid_t space); static void xml_dump_datatype(hid_t type); -static herr_t xml_dump_attr(hid_t, const char *, void *); +static herr_t xml_dump_attr(hid_t, const char *, const H5A_info_t *, void *); static void xml_dump_data(hid_t, int, struct subset_t *, int); /** @@ -1223,7 +1223,8 @@ dump_dataspace(hid_t space) *------------------------------------------------------------------------- */ static herr_t -dump_attr(hid_t oid, const char *attr_name, void UNUSED * op_data) +dump_attr(hid_t oid, const char *attr_name, const H5A_info_t UNUSED *info, + void UNUSED *op_data) { hid_t attr_id; herr_t ret = SUCCEED; @@ -1817,7 +1818,7 @@ dump_named_datatype(hid_t type, const char *name) /* print attributes */ indent += COL; - H5Aiterate(type, NULL, dump_attr, NULL); + H5Aiterate2(type, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_attr, NULL, H5P_DEFAULT); indent -= COL; end_obj(dump_header_format->datatypeend, @@ -1894,11 +1895,11 @@ dump_group(hid_t gid, const char *name, H5_index_t idx_type, H5_iter_order_t ite printf("%s \"%s\"\n", HARDLINK, found_obj->objname); } else { found_obj->displayed = TRUE; - H5Aiterate(gid, NULL, dump_attr, NULL); + H5Aiterate2(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_attr, NULL, H5P_DEFAULT); H5Literate(gid, ".", idx_type, iter_order, NULL, dump_all, NULL, H5P_DEFAULT); } } else { - H5Aiterate(gid, NULL, dump_attr, NULL); + H5Aiterate2(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_attr, NULL, H5P_DEFAULT); H5Literate(gid, ".", idx_type, iter_order, NULL, dump_all, NULL, H5P_DEFAULT); } @@ -1973,7 +1974,7 @@ dump_dataset(hid_t did, const char *name, struct subset_t *sset) } /* end switch */ indent += COL; - H5Aiterate(did, NULL, dump_attr, NULL); + H5Aiterate2(did, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_attr, NULL, H5P_DEFAULT); indent -= COL; H5Tclose(type); @@ -5074,7 +5075,8 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU *------------------------------------------------------------------------- */ static herr_t -xml_dump_attr(hid_t attr, const char *attr_name, void UNUSED * op_data) +xml_dump_attr(hid_t attr, const char *attr_name, const H5A_info_t UNUSED *info, + void UNUSED * op_data) { hid_t attr_id, type, space; H5S_class_t space_type; @@ -5384,8 +5386,8 @@ xml_dump_group(hid_t gid, const char *name, H5_index_t UNUSED idx_type, H5_iter_ found_obj->displayed = TRUE; /* 1. do all the attributes of the group */ - H5Aiterate(gid, NULL, - dump_function_table->dump_attribute_function, NULL); + H5Aiterate2(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, + dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT); if(isRoot && unamedtype) { unsigned u; @@ -5439,7 +5441,7 @@ xml_dump_group(hid_t gid, const char *name, H5_index_t UNUSED idx_type, H5_iter_ free(parentxid); /* 1. do all the attributes of the group */ - H5Aiterate(gid, NULL, dump_function_table->dump_attribute_function, NULL); + H5Aiterate2(gid, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT); if(isRoot && unamedtype) { unsigned u; @@ -6088,7 +6090,7 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset) dump_function_table->dump_datatype_function(type); indent += COL; - H5Aiterate(did, NULL, dump_function_table->dump_attribute_function, NULL); + H5Aiterate2(did, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, dump_function_table->dump_attribute_function, NULL, H5P_DEFAULT); indent -= COL; tempi = H5Dget_storage_size(did); diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c index 4ea6bbc..e12b447 100644 --- a/tools/h5ls/h5ls.c +++ b/tools/h5ls/h5ls.c @@ -1322,10 +1322,11 @@ dump_dataset_values(hid_t dset) *------------------------------------------------------------------------- */ static herr_t -list_attr (hid_t obj, const char *attr_name, void UNUSED *op_data) +list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, + void UNUSED *op_data) { hid_t attr, space, type, p_type; - hsize_t size[64], nelmts=1; + hsize_t size[64], nelmts = 1; int ndims, i, n; size_t need; hsize_t temp_need; @@ -1784,7 +1785,7 @@ list(hid_t group, const char *name, const H5L_info_t *linfo, void *_iter) /* Display attributes */ if(oi.type >= 0) - H5Aiterate(obj, NULL, list_attr, NULL); + H5Aiterate2(obj, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, list_attr, NULL, H5P_DEFAULT); /* Object location & reference count */ printf(" %-10s %lu:"H5_PRINTF_HADDR_FMT"\n", "Location:", oi.fileno, oi.addr); @@ -2312,7 +2313,7 @@ main(int argc, const char *argv[]) if(verbose_g > 0) { if((root = H5Gopen2(file, "/", H5P_DEFAULT)) < 0) leave(1); - H5Aiterate(root, NULL, list_attr, NULL); + H5Aiterate2(root, ".", H5_INDEX_NAME, H5_ITER_INC, NULL, list_attr, NULL, H5P_DEFAULT); if(H5Gclose(root) < 0) leave(1); } /* end if */ diff --git a/tools/testfiles/tattr2.ls b/tools/testfiles/tattr2.ls index e34206e..88b24cd 100644 --- a/tools/testfiles/tattr2.ls +++ b/tools/testfiles/tattr2.ls @@ -2,54 +2,40 @@ output for 'h5ls -w80 -v -S tattr2.h5' ############################# Opened "tattr2.h5" with sec2 driver. - Attribute: string {2} - Type: 2-byte null-terminated ASCII string - Data: "ab", "de" - Attribute: bitfield {2} - Type: 8-bit bitfield - Data: 0x01, 0x02 - Attribute: opaque {2} - Type: 1-byte opaque type - (tag = "1-byte opaque type") - Data: 0x01, 0x02 - Attribute: compound {2} - Type: struct { - "a" +0 8-bit integer - "b" +4 IEEE 64-bit little-endian float - } 12 bytes - Data: {1, 2}, {3, 4} - Attribute: enum {2} - Type: enum 32-bit little-endian integer { - RED = 0 - GREEN = 1 - } - Data: RED, RED - Attribute: vlen {2} - Type: variable length of - 32-bit little-endian integer - Data: (1), (2,3) Attribute: array {2} Type: [3] 32-bit little-endian integer Data: [1,2,3], [4,5,6] - Attribute: integer {2} - Type: 32-bit little-endian integer - Data: 1, 2 - Attribute: float {2} - Type: IEEE 32-bit little-endian float - Data: 1, 2 - Attribute: string2D {3, 2} - Type: 2-byte null-terminated ASCII string + Attribute: array2D {3, 2} + Type: [3] 32-bit little-endian integer Data: - (0,0) "ab", "cd", "ef", "gh", "ij", "kl" + (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] + Attribute: array3D {4, 3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], + (0,2,1) [16,17,18], [19,20,21], [22,23,24], [25,26,27], [28,29,30], + (1,2,0) [31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45], + (2,1,1) [46,47,48], [49,50,51], [52,53,54], [55,56,57], [58,59,60], + (3,1,0) [61,62,63], [64,65,66], [67,68,69], [70,71,72] + Attribute: bitfield {2} + Type: 8-bit bitfield + Data: 0x01, 0x02 Attribute: bitfield2D {3, 2} Type: 8-bit bitfield Data: (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 - Attribute: opaque2D {3, 2} - Type: 1-byte opaque type - (tag = "1-byte opaque type") + Attribute: bitfield3D {4, 3, 2} + Type: 8-bit bitfield Data: - (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 + Attribute: compound {2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: {1, 2}, {3, 4} Attribute: compound2D {3, 2} Type: struct { "a" +0 8-bit integer @@ -57,6 +43,22 @@ Opened "tattr2.h5" with sec2 driver. } 12 bytes Data: (0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12} + Attribute: compound3D {4, 3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: + (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, + (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, + (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, + (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} + Attribute: enum {2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: RED, RED Attribute: enum2D {3, 2} Type: enum 32-bit little-endian integer { RED = 0 @@ -64,35 +66,47 @@ Opened "tattr2.h5" with sec2 driver. } Data: (0,0) RED, RED, RED, RED, RED, RED - Attribute: vlen2D {3, 2} - Type: variable length of - 32-bit little-endian integer - Data: - (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) - Attribute: array2D {3, 2} - Type: [3] 32-bit little-endian integer + Attribute: enum3D {4, 3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } Data: - (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] - Attribute: integer2D {3, 2} - Type: 32-bit little-endian integer + (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, + (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + Attribute: float {2} + Type: IEEE 32-bit little-endian float + Data: 1, 2 + Attribute: float2D {3, 2} + Type: IEEE 32-bit little-endian float Data: (0,0) 1, 2, 3, 4, 5, 6 - Attribute: float2D {3, 2} + Attribute: float3D {4, 3, 2} Type: IEEE 32-bit little-endian float Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: integer {2} + Type: 32-bit little-endian integer + Data: 1, 2 + Attribute: integer2D {3, 2} + Type: 32-bit little-endian integer + Data: (0,0) 1, 2, 3, 4, 5, 6 - Attribute: string3D {4, 3, 2} - Type: 2-byte null-terminated ASCII string + Attribute: integer3D {4, 3, 2} + Type: 32-bit little-endian integer Data: - (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", - (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", - (3,1,0) "RS", "TU", "VW", "XZ" - Attribute: bitfield3D {4, 3, 2} - Type: 8-bit bitfield + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: opaque {2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: 0x01, 0x02 + Attribute: opaque2D {3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") Data: - (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, - (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, - (3,1,0) 0x15, 0x16, 0x17, 0x18 + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 Attribute: opaque3D {4, 3, 2} Type: 1-byte opaque type (tag = "1-byte opaque type") @@ -100,24 +114,28 @@ Opened "tattr2.h5" with sec2 driver. (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, (3,1,0) 0x15, 0x16, 0x17, 0x18 - Attribute: compound3D {4, 3, 2} - Type: struct { - "a" +0 8-bit integer - "b" +4 IEEE 64-bit little-endian float - } 12 bytes + Attribute: string {2} + Type: 2-byte null-terminated ASCII string + Data: "ab", "de" + Attribute: string2D {3, 2} + Type: 2-byte null-terminated ASCII string Data: - (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, - (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, - (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, - (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} - Attribute: enum3D {4, 3, 2} - Type: enum 32-bit little-endian integer { - RED = 0 - GREEN = 1 - } + (0,0) "ab", "cd", "ef", "gh", "ij", "kl" + Attribute: string3D {4, 3, 2} + Type: 2-byte null-terminated ASCII string Data: - (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, - (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", + (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", + (3,1,0) "RS", "TU", "VW", "XZ" + Attribute: vlen {2} + Type: variable length of + 32-bit little-endian integer + Data: (1), (2,3) + Attribute: vlen2D {3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) Attribute: vlen3D {4, 3, 2} Type: variable length of 32-bit little-endian integer @@ -127,6 +145,14 @@ Opened "tattr2.h5" with sec2 driver. (2,1,0) (24,25,26), (27,28,29), (30,31,32), (33,34,35), (3,0,0) (36,37,38,39), (40,41,42,43), (44,45,46,47), (48,49,50,51), (3,2,0) (52,53,54,55), (56,57,58,59) +dset Dataset {2/2} + Attribute: array {2} + Type: [3] 32-bit little-endian integer + Data: [1,2,3], [4,5,6] + Attribute: array2D {3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] Attribute: array3D {4, 3, 2} Type: [3] 32-bit little-endian integer Data: @@ -135,68 +161,25 @@ Opened "tattr2.h5" with sec2 driver. (1,2,0) [31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45], (2,1,1) [46,47,48], [49,50,51], [52,53,54], [55,56,57], [58,59,60], (3,1,0) [61,62,63], [64,65,66], [67,68,69], [70,71,72] - Attribute: integer3D {4, 3, 2} - Type: 32-bit little-endian integer - Data: - (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - (2,2,1) 18, 19, 20, 21, 22, 23, 24 - Attribute: float3D {4, 3, 2} - Type: IEEE 32-bit little-endian float - Data: - (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - (2,2,1) 18, 19, 20, 21, 22, 23, 24 -dset Dataset {2/2} - Attribute: string {2} - Type: 2-byte null-terminated ASCII string - Data: "ab", "de" Attribute: bitfield {2} Type: 8-bit bitfield Data: 0x01, 0x02 - Attribute: opaque {2} - Type: 1-byte opaque type - (tag = "1-byte opaque type") - Data: 0x01, 0x02 + Attribute: bitfield2D {3, 2} + Type: 8-bit bitfield + Data: + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + Attribute: bitfield3D {4, 3, 2} + Type: 8-bit bitfield + Data: + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 Attribute: compound {2} Type: struct { "a" +0 8-bit integer "b" +4 IEEE 64-bit little-endian float } 12 bytes Data: {1, 2}, {3, 4} - Attribute: reference {2} - Type: object reference - Data: DATASET-1:976, DATASET-1:976 - Attribute: enum {2} - Type: enum 32-bit little-endian integer { - RED = 0 - GREEN = 1 - } - Data: RED, RED - Attribute: vlen {2} - Type: variable length of - 32-bit little-endian integer - Data: (1), (2,3) - Attribute: array {2} - Type: [3] 32-bit little-endian integer - Data: [1,2,3], [4,5,6] - Attribute: integer {2} - Type: 32-bit little-endian integer - Data: 1, 2 - Attribute: float {2} - Type: IEEE 32-bit little-endian float - Data: 1, 2 - Attribute: string2D {3, 2} - Type: 2-byte null-terminated ASCII string - Data: - (0,0) "ab", "cd", "ef", "gh", "ij", "kl" - Attribute: bitfield2D {3, 2} - Type: 8-bit bitfield - Data: - (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 - Attribute: opaque2D {3, 2} - Type: 1-byte opaque type - (tag = "1-byte opaque type") - Data: - (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 Attribute: compound2D {3, 2} Type: struct { "a" +0 8-bit integer @@ -204,11 +187,22 @@ dset Dataset {2/2} } 12 bytes Data: (0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12} - Attribute: reference2D {3, 2} - Type: object reference + Attribute: compound3D {4, 3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes Data: - (0,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, - (2,0) DATASET-1:976, DATASET-1:976 + (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, + (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, + (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, + (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} + Attribute: enum {2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: RED, RED Attribute: enum2D {3, 2} Type: enum 32-bit little-endian integer { RED = 0 @@ -216,35 +210,47 @@ dset Dataset {2/2} } Data: (0,0) RED, RED, RED, RED, RED, RED - Attribute: vlen2D {3, 2} - Type: variable length of - 32-bit little-endian integer - Data: - (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) - Attribute: array2D {3, 2} - Type: [3] 32-bit little-endian integer + Attribute: enum3D {4, 3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } Data: - (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] - Attribute: integer2D {3, 2} - Type: 32-bit little-endian integer + (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, + (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + Attribute: float {2} + Type: IEEE 32-bit little-endian float + Data: 1, 2 + Attribute: float2D {3, 2} + Type: IEEE 32-bit little-endian float Data: (0,0) 1, 2, 3, 4, 5, 6 - Attribute: float2D {3, 2} + Attribute: float3D {4, 3, 2} Type: IEEE 32-bit little-endian float Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: integer {2} + Type: 32-bit little-endian integer + Data: 1, 2 + Attribute: integer2D {3, 2} + Type: 32-bit little-endian integer + Data: (0,0) 1, 2, 3, 4, 5, 6 - Attribute: string3D {4, 3, 2} - Type: 2-byte null-terminated ASCII string + Attribute: integer3D {4, 3, 2} + Type: 32-bit little-endian integer Data: - (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", - (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", - (3,1,0) "RS", "TU", "VW", "XZ" - Attribute: bitfield3D {4, 3, 2} - Type: 8-bit bitfield + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: opaque {2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: 0x01, 0x02 + Attribute: opaque2D {3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") Data: - (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, - (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, - (3,1,0) 0x15, 0x16, 0x17, 0x18 + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 Attribute: opaque3D {4, 3, 2} Type: 1-byte opaque type (tag = "1-byte opaque type") @@ -252,16 +258,14 @@ dset Dataset {2/2} (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, (3,1,0) 0x15, 0x16, 0x17, 0x18 - Attribute: compound3D {4, 3, 2} - Type: struct { - "a" +0 8-bit integer - "b" +4 IEEE 64-bit little-endian float - } 12 bytes + Attribute: reference {2} + Type: object reference + Data: DATASET-1:976, DATASET-1:976 + Attribute: reference2D {3, 2} + Type: object reference Data: - (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, - (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, - (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, - (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} + (0,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (2,0) DATASET-1:976, DATASET-1:976 Attribute: reference3D {4, 3, 2} Type: object reference Data: @@ -271,14 +275,28 @@ dset Dataset {2/2} (2,0,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, (2,2,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, (3,1,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976 - Attribute: enum3D {4, 3, 2} - Type: enum 32-bit little-endian integer { - RED = 0 - GREEN = 1 - } + Attribute: string {2} + Type: 2-byte null-terminated ASCII string + Data: "ab", "de" + Attribute: string2D {3, 2} + Type: 2-byte null-terminated ASCII string Data: - (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, - (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + (0,0) "ab", "cd", "ef", "gh", "ij", "kl" + Attribute: string3D {4, 3, 2} + Type: 2-byte null-terminated ASCII string + Data: + (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", + (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", + (3,1,0) "RS", "TU", "VW", "XZ" + Attribute: vlen {2} + Type: variable length of + 32-bit little-endian integer + Data: (1), (2,3) + Attribute: vlen2D {3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) Attribute: vlen3D {4, 3, 2} Type: variable length of 32-bit little-endian integer @@ -288,6 +306,18 @@ dset Dataset {2/2} (2,1,0) (24,25,26), (27,28,29), (30,31,32), (33,34,35), (3,0,0) (36,37,38,39), (40,41,42,43), (44,45,46,47), (48,49,50,51), (3,2,0) (52,53,54,55), (56,57,58,59) + Location: 1:976 + Links: 1 + Storage: 8 logical bytes, 0 allocated bytes + Type: 32-bit little-endian integer +g1 Group + Attribute: array {2} + Type: [3] 32-bit little-endian integer + Data: [1,2,3], [4,5,6] + Attribute: array2D {3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] Attribute: array3D {4, 3, 2} Type: [3] 32-bit little-endian integer Data: @@ -296,69 +326,25 @@ dset Dataset {2/2} (1,2,0) [31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45], (2,1,1) [46,47,48], [49,50,51], [52,53,54], [55,56,57], [58,59,60], (3,1,0) [61,62,63], [64,65,66], [67,68,69], [70,71,72] - Attribute: integer3D {4, 3, 2} - Type: 32-bit little-endian integer - Data: - (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - (2,2,1) 18, 19, 20, 21, 22, 23, 24 - Attribute: float3D {4, 3, 2} - Type: IEEE 32-bit little-endian float - Data: - (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - (2,2,1) 18, 19, 20, 21, 22, 23, 24 - Location: 1:976 - Links: 1 - Storage: 8 logical bytes, 0 allocated bytes - Type: 32-bit little-endian integer -g1 Group - Attribute: string {2} - Type: 2-byte null-terminated ASCII string - Data: "ab", "de" Attribute: bitfield {2} Type: 8-bit bitfield Data: 0x01, 0x02 - Attribute: opaque {2} - Type: 1-byte opaque type - (tag = "1-byte opaque type") - Data: 0x01, 0x02 + Attribute: bitfield2D {3, 2} + Type: 8-bit bitfield + Data: + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + Attribute: bitfield3D {4, 3, 2} + Type: 8-bit bitfield + Data: + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 Attribute: compound {2} Type: struct { "a" +0 8-bit integer "b" +4 IEEE 64-bit little-endian float } 12 bytes Data: {1, 2}, {3, 4} - Attribute: enum {2} - Type: enum 32-bit little-endian integer { - RED = 0 - GREEN = 1 - } - Data: RED, RED - Attribute: vlen {2} - Type: variable length of - 32-bit little-endian integer - Data: (1), (2,3) - Attribute: array {2} - Type: [3] 32-bit little-endian integer - Data: [1,2,3], [4,5,6] - Attribute: integer {2} - Type: 32-bit little-endian integer - Data: 1, 2 - Attribute: float {2} - Type: IEEE 32-bit little-endian float - Data: 1, 2 - Attribute: string2D {3, 2} - Type: 2-byte null-terminated ASCII string - Data: - (0,0) "ab", "cd", "ef", "gh", "ij", "kl" - Attribute: bitfield2D {3, 2} - Type: 8-bit bitfield - Data: - (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 - Attribute: opaque2D {3, 2} - Type: 1-byte opaque type - (tag = "1-byte opaque type") - Data: - (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 Attribute: compound2D {3, 2} Type: struct { "a" +0 8-bit integer @@ -366,6 +352,22 @@ g1 Group } 12 bytes Data: (0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12} + Attribute: compound3D {4, 3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: + (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, + (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, + (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, + (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} + Attribute: enum {2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: RED, RED Attribute: enum2D {3, 2} Type: enum 32-bit little-endian integer { RED = 0 @@ -373,35 +375,47 @@ g1 Group } Data: (0,0) RED, RED, RED, RED, RED, RED - Attribute: vlen2D {3, 2} - Type: variable length of - 32-bit little-endian integer - Data: - (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) - Attribute: array2D {3, 2} - Type: [3] 32-bit little-endian integer + Attribute: enum3D {4, 3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } Data: - (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] - Attribute: integer2D {3, 2} - Type: 32-bit little-endian integer + (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, + (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + Attribute: float {2} + Type: IEEE 32-bit little-endian float + Data: 1, 2 + Attribute: float2D {3, 2} + Type: IEEE 32-bit little-endian float Data: (0,0) 1, 2, 3, 4, 5, 6 - Attribute: float2D {3, 2} + Attribute: float3D {4, 3, 2} Type: IEEE 32-bit little-endian float Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: integer {2} + Type: 32-bit little-endian integer + Data: 1, 2 + Attribute: integer2D {3, 2} + Type: 32-bit little-endian integer + Data: (0,0) 1, 2, 3, 4, 5, 6 - Attribute: string3D {4, 3, 2} - Type: 2-byte null-terminated ASCII string + Attribute: integer3D {4, 3, 2} + Type: 32-bit little-endian integer Data: - (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", - (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", - (3,1,0) "RS", "TU", "VW", "XZ" - Attribute: bitfield3D {4, 3, 2} - Type: 8-bit bitfield + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: opaque {2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: 0x01, 0x02 + Attribute: opaque2D {3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") Data: - (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, - (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, - (3,1,0) 0x15, 0x16, 0x17, 0x18 + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 Attribute: opaque3D {4, 3, 2} Type: 1-byte opaque type (tag = "1-byte opaque type") @@ -409,24 +423,28 @@ g1 Group (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, (3,1,0) 0x15, 0x16, 0x17, 0x18 - Attribute: compound3D {4, 3, 2} - Type: struct { - "a" +0 8-bit integer - "b" +4 IEEE 64-bit little-endian float - } 12 bytes + Attribute: string {2} + Type: 2-byte null-terminated ASCII string + Data: "ab", "de" + Attribute: string2D {3, 2} + Type: 2-byte null-terminated ASCII string Data: - (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, - (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, - (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, - (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} - Attribute: enum3D {4, 3, 2} - Type: enum 32-bit little-endian integer { - RED = 0 - GREEN = 1 - } + (0,0) "ab", "cd", "ef", "gh", "ij", "kl" + Attribute: string3D {4, 3, 2} + Type: 2-byte null-terminated ASCII string Data: - (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, - (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", + (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", + (3,1,0) "RS", "TU", "VW", "XZ" + Attribute: vlen {2} + Type: variable length of + 32-bit little-endian integer + Data: (1), (2,3) + Attribute: vlen2D {3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) Attribute: vlen3D {4, 3, 2} Type: variable length of 32-bit little-endian integer @@ -436,24 +454,6 @@ g1 Group (2,1,0) (24,25,26), (27,28,29), (30,31,32), (33,34,35), (3,0,0) (36,37,38,39), (40,41,42,43), (44,45,46,47), (48,49,50,51), (3,2,0) (52,53,54,55), (56,57,58,59) - Attribute: array3D {4, 3, 2} - Type: [3] 32-bit little-endian integer - Data: - (0,0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], - (0,2,1) [16,17,18], [19,20,21], [22,23,24], [25,26,27], [28,29,30], - (1,2,0) [31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45], - (2,1,1) [46,47,48], [49,50,51], [52,53,54], [55,56,57], [58,59,60], - (3,1,0) [61,62,63], [64,65,66], [67,68,69], [70,71,72] - Attribute: integer3D {4, 3, 2} - Type: 32-bit little-endian integer - Data: - (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - (2,2,1) 18, 19, 20, 21, 22, 23, 24 - Attribute: float3D {4, 3, 2} - Type: IEEE 32-bit little-endian float - Data: - (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - (2,2,1) 18, 19, 20, 21, 22, 23, 24 Location: 1:2176 Links: 1 g2 Group diff --git a/tools/testfiles/tref-escapes-at.h5.xml b/tools/testfiles/tref-escapes-at.h5.xml index 403c9ce..b7a1158 100644 --- a/tools/testfiles/tref-escapes-at.h5.xml +++ b/tools/testfiles/tref-escapes-at.h5.xml @@ -200,7 +200,7 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - + @@ -215,11 +215,11 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - "/Group1/Dataset\"quote" + "/Group1/Dataset&amp" - + @@ -234,11 +234,11 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - "/Group1/Dataset\\slash" + "/Group1/Dataset'apos" - + @@ -253,7 +253,7 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - "/Group1/Dataset&amp" + "/Group1/Dataset>gt" @@ -276,7 +276,7 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - + @@ -291,11 +291,11 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - "/Group1/Dataset>gt" + "/Group1/Dataset\"quote" - + @@ -310,7 +310,7 @@ Expected output for 'h5dump --xml tref-escapes-at.h5' - "/Group1/Dataset'apos" + "/Group1/Dataset\\slash" diff --git a/tools/testfiles/treference.ddl b/tools/testfiles/treference.ddl index 9a21ef7..b34fa8d 100644 --- a/tools/testfiles/treference.ddl +++ b/tools/testfiles/treference.ddl @@ -3,16 +3,38 @@ Expected output for 'h5dump tattr2.h5' ############################# HDF5 "tattr2.h5" { GROUP "/" { - ATTRIBUTE "string" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } + ATTRIBUTE "array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0): "ab", "de" + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + } + } + ATTRIBUTE "array2D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] + } + } + ATTRIBUTE "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] } } ATTRIBUTE "bitfield" { @@ -22,14 +44,31 @@ GROUP "/" { (0): 0x01, 0x02 } } - ATTRIBUTE "opaque" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + ATTRIBUTE "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0): 0x01, 0x02 + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "bitfield3D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 } } ATTRIBUTE "compound" { @@ -49,80 +88,6 @@ GROUP "/" { } } } - ATTRIBUTE "enum" { - DATATYPE H5T_ENUM { - H5T_STD_I32LE; - "RED" 0; - "GREEN" 1; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): RED, RED - } - } - ATTRIBUTE "vlen" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): (1), (2, 3) - } - } - ATTRIBUTE "array" { - DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): [ 1, 2, 3 ], [ 4, 5, 6 ] - } - } - ATTRIBUTE "integer" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 1, 2 - } - } - ATTRIBUTE "float" { - DATATYPE H5T_IEEE_F32LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 1, 2 - } - } - ATTRIBUTE "string2D" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): "ab", "cd", - (1,0): "ef", "gh", - (2,0): "ij", "kl" - } - } - ATTRIBUTE "bitfield2D" { - DATATYPE H5T_STD_B8LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): 0x01, 0x02, - (1,0): 0x03, 0x04, - (2,0): 0x05, 0x06 - } - } - ATTRIBUTE "opaque2D" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): 0x01, 0x02, - (1,0): 0x03, 0x04, - (2,0): 0x05, 0x06 - } - } ATTRIBUTE "compound2D" { DATATYPE H5T_COMPOUND { H5T_STD_I8LE "a"; @@ -156,117 +121,6 @@ GROUP "/" { } } } - ATTRIBUTE "enum2D" { - DATATYPE H5T_ENUM { - H5T_STD_I32LE; - "RED" 0; - "GREEN" 1; - } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): RED, RED, - (1,0): RED, RED, - (2,0): RED, RED - } - } - ATTRIBUTE "vlen2D" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): (0), (1), - (1,0): (2, 3), (4, 5), - (2,0): (6, 7, 8), (9, 10, 11) - } - } - ATTRIBUTE "array2D" { - DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], - (1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], - (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] - } - } - ATTRIBUTE "integer2D" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): 1, 2, - (1,0): 3, 4, - (2,0): 5, 6 - } - } - ATTRIBUTE "float2D" { - DATATYPE H5T_IEEE_F32LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): 1, 2, - (1,0): 3, 4, - (2,0): 5, 6 - } - } - ATTRIBUTE "string3D" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } - DATA { - (0,0,0): "ab", "cd", - (0,1,0): "ef", "gh", - (0,2,0): "ij", "kl", - (1,0,0): "mn", "pq", - (1,1,0): "rs", "tu", - (1,2,0): "vw", "xz", - (2,0,0): "AB", "CD", - (2,1,0): "EF", "GH", - (2,2,0): "IJ", "KL", - (3,0,0): "MN", "PQ", - (3,1,0): "RS", "TU", - (3,2,0): "VW", "XZ" - } - } - ATTRIBUTE "bitfield3D" { - DATATYPE H5T_STD_B8LE - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } - DATA { - (0,0,0): 0x01, 0x02, - (0,1,0): 0x03, 0x04, - (0,2,0): 0x05, 0x06, - (1,0,0): 0x07, 0x08, - (1,1,0): 0x09, 0x0a, - (1,2,0): 0x0b, 0x0c, - (2,0,0): 0x0d, 0x0e, - (2,1,0): 0x0f, 0x10, - (2,2,0): 0x11, 0x12, - (3,0,0): 0x13, 0x14, - (3,1,0): 0x15, 0x16, - (3,2,0): 0x17, 0x18 - } - } - ATTRIBUTE "opaque3D" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } - DATA { - (0,0,0): 0x01, 0x02, - (0,1,0): 0x03, 0x04, - (0,2,0): 0x05, 0x06, - (1,0,0): 0x07, 0x08, - (1,1,0): 0x09, 0x0a, - (1,2,0): 0x0b, 0x0c, - (2,0,0): 0x0d, 0x0e, - (2,1,0): 0x0f, 0x10, - (2,2,0): 0x11, 0x12, - (3,0,0): 0x13, 0x14, - (3,1,0): 0x15, 0x16, - (3,2,0): 0x17, 0x18 - } - } ATTRIBUTE "compound3D" { DATATYPE H5T_COMPOUND { H5T_STD_I8LE "a"; @@ -372,7 +226,31 @@ GROUP "/" { } } } - ATTRIBUTE "enum3D" { + ATTRIBUTE "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): RED, RED + } + } + ATTRIBUTE "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED + } + } + ATTRIBUTE "enum3D" { DATATYPE H5T_ENUM { H5T_STD_I32LE; "RED" 0; @@ -394,44 +272,24 @@ GROUP "/" { (3,2,0): RED, RED } } - ATTRIBUTE "vlen3D" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0,0): (0), (1), - (0,1,0): (2), (3), - (0,2,0): (4), (5), - (1,0,0): (6, 7), (8, 9), - (1,1,0): (10, 11), (12, 13), - (1,2,0): (14, 15), (16, 17), - (2,0,0): (18, 19, 20), (21, 22, 23), - (2,1,0): (24, 25, 26), (27, 28, 29), - (2,2,0): (30, 31, 32), (33, 34, 35), - (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), - (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), - (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + (0): 1, 2 } } - ATTRIBUTE "array3D" { - DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], - (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], - (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], - (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], - (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], - (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], - (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], - (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], - (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], - (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], - (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], - (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 } } - ATTRIBUTE "integer3D" { - DATATYPE H5T_STD_I32LE + ATTRIBUTE "float3D" { + DATATYPE H5T_IEEE_F32LE DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): 1, 2, @@ -448,8 +306,24 @@ GROUP "/" { (3,2,0): 23, 24 } } - ATTRIBUTE "float3D" { - DATATYPE H5T_IEEE_F32LE + ATTRIBUTE "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "integer3D" { + DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): 1, 2, @@ -466,82 +340,137 @@ GROUP "/" { (3,2,0): 23, 24 } } - DATASET "dset" { - DATATYPE H5T_STD_I32LE + ATTRIBUTE "opaque" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0): 0, 0 + (0): 0x01, 0x02 } - ATTRIBUTE "string" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): "ab", "de" - } + } + ATTRIBUTE "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 } - ATTRIBUTE "bitfield" { - DATATYPE H5T_STD_B8LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 0x01, 0x02 - } + } + ATTRIBUTE "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 } - ATTRIBUTE "opaque" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 0x01, 0x02 + } + ATTRIBUTE "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): "ab", "de" } - ATTRIBUTE "compound" { - DATATYPE H5T_COMPOUND { - H5T_STD_I8LE "a"; - H5T_IEEE_F64LE "b"; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): { - 1, - 2 - }, - (1): { - 3, - 4 - } + } + ATTRIBUTE "string2D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): "ab", "cd", + (1,0): "ef", "gh", + (2,0): "ij", "kl" } - ATTRIBUTE "reference" { - DATATYPE H5T_REFERENCE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): DATASET 976 /dset , DATASET 976 /dset + } + ATTRIBUTE "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" } - ATTRIBUTE "enum" { - DATATYPE H5T_ENUM { - H5T_STD_I32LE; - "RED" 0; - "GREEN" 1; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): RED, RED - } + } + ATTRIBUTE "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): (1), (2, 3) } - ATTRIBUTE "vlen" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): (1), (2, 3) - } + } + ATTRIBUTE "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) + } + } + ATTRIBUTE "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + } + } + DATASET "dset" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0, 0 } ATTRIBUTE "array" { DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } @@ -550,119 +479,6 @@ GROUP "/" { (0): [ 1, 2, 3 ], [ 4, 5, 6 ] } } - ATTRIBUTE "integer" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 1, 2 - } - } - ATTRIBUTE "float" { - DATATYPE H5T_IEEE_F32LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 1, 2 - } - } - ATTRIBUTE "string2D" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): "ab", "cd", - (1,0): "ef", "gh", - (2,0): "ij", "kl" - } - } - ATTRIBUTE "bitfield2D" { - DATATYPE H5T_STD_B8LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): 0x01, 0x02, - (1,0): 0x03, 0x04, - (2,0): 0x05, 0x06 - } - } - ATTRIBUTE "opaque2D" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): 0x01, 0x02, - (1,0): 0x03, 0x04, - (2,0): 0x05, 0x06 - } - } - ATTRIBUTE "compound2D" { - DATATYPE H5T_COMPOUND { - H5T_STD_I8LE "a"; - H5T_IEEE_F64LE "b"; - } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): { - 1, - 2 - }, - (0,1): { - 3, - 4 - }, - (1,0): { - 5, - 6 - }, - (1,1): { - 7, - 8 - }, - (2,0): { - 9, - 10 - }, - (2,1): { - 11, - 12 - } - } - } - ATTRIBUTE "reference2D" { - DATATYPE H5T_REFERENCE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): DATASET 976 /dset , DATASET 976 /dset , - (1,0): DATASET 976 /dset , DATASET 976 /dset , - (2,0): DATASET 976 /dset , DATASET 976 /dset - } - } - ATTRIBUTE "enum2D" { - DATATYPE H5T_ENUM { - H5T_STD_I32LE; - "RED" 0; - "GREEN" 1; - } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): RED, RED, - (1,0): RED, RED, - (2,0): RED, RED - } - } - ATTRIBUTE "vlen2D" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } - DATA { - (0,0): (0), (1), - (1,0): (2, 3), (4, 5), - (2,0): (6, 7, 8), (9, 10, 11) - } - } ATTRIBUTE "array2D" { DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } @@ -672,45 +488,38 @@ GROUP "/" { (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] } } - ATTRIBUTE "integer2D" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { - (0,0): 1, 2, - (1,0): 3, 4, - (2,0): 5, 6 + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] } } - ATTRIBUTE "float2D" { - DATATYPE H5T_IEEE_F32LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "bitfield" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0): 1, 2, - (1,0): 3, 4, - (2,0): 5, 6 + (0): 0x01, 0x02 } } - ATTRIBUTE "string3D" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0,0): "ab", "cd", - (0,1,0): "ef", "gh", - (0,2,0): "ij", "kl", - (1,0,0): "mn", "pq", - (1,1,0): "rs", "tu", - (1,2,0): "vw", "xz", - (2,0,0): "AB", "CD", - (2,1,0): "EF", "GH", - (2,2,0): "IJ", "KL", - (3,0,0): "MN", "PQ", - (3,1,0): "RS", "TU", - (3,2,0): "VW", "XZ" + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 } } ATTRIBUTE "bitfield3D" { @@ -731,25 +540,54 @@ GROUP "/" { (3,2,0): 0x17, 0x18 } } - ATTRIBUTE "opaque3D" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0,0): 0x01, 0x02, - (0,1,0): 0x03, 0x04, - (0,2,0): 0x05, 0x06, - (1,0,0): 0x07, 0x08, - (1,1,0): 0x09, 0x0a, - (1,2,0): 0x0b, 0x0c, - (2,0,0): 0x0d, 0x0e, - (2,1,0): 0x0f, 0x10, - (2,2,0): 0x11, 0x12, - (3,0,0): 0x13, 0x14, - (3,1,0): 0x15, 0x16, - (3,2,0): 0x17, 0x18 + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + ATTRIBUTE "compound2D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): { + 1, + 2 + }, + (0,1): { + 3, + 4 + }, + (1,0): { + 5, + 6 + }, + (1,1): { + 7, + 8 + }, + (2,0): { + 9, + 10 + }, + (2,1): { + 11, + 12 + } } } ATTRIBUTE "compound3D" { @@ -857,22 +695,28 @@ GROUP "/" { } } } - ATTRIBUTE "reference3D" { - DATATYPE H5T_REFERENCE - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0,0): DATASET 976 /dset , DATASET 976 /dset , - (0,1,0): DATASET 976 /dset , DATASET 976 /dset , - (0,2,0): DATASET 976 /dset , DATASET 976 /dset , - (1,0,0): DATASET 976 /dset , DATASET 976 /dset , - (1,1,0): DATASET 976 /dset , DATASET 976 /dset , - (1,2,0): DATASET 976 /dset , DATASET 976 /dset , - (2,0,0): DATASET 976 /dset , DATASET 976 /dset , - (2,1,0): DATASET 976 /dset , DATASET 976 /dset , - (2,2,0): DATASET 976 /dset , DATASET 976 /dset , - (3,0,0): DATASET 976 /dset , DATASET 976 /dset , - (3,1,0): DATASET 976 /dset , DATASET 976 /dset , - (3,2,0): DATASET 976 /dset , DATASET 976 /dset + (0): RED, RED + } + } + ATTRIBUTE "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED } } ATTRIBUTE "enum3D" { @@ -897,44 +741,24 @@ GROUP "/" { (3,2,0): RED, RED } } - ATTRIBUTE "vlen3D" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0,0): (0), (1), - (0,1,0): (2), (3), - (0,2,0): (4), (5), - (1,0,0): (6, 7), (8, 9), - (1,1,0): (10, 11), (12, 13), - (1,2,0): (14, 15), (16, 17), - (2,0,0): (18, 19, 20), (21, 22, 23), - (2,1,0): (24, 25, 26), (27, 28, 29), - (2,2,0): (30, 31, 32), (33, 34, 35), - (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), - (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), - (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + (0): 1, 2 } } - ATTRIBUTE "array3D" { - DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], - (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], - (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], - (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], - (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], - (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], - (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], - (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], - (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], - (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], - (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], - (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 } } - ATTRIBUTE "integer3D" { - DATATYPE H5T_STD_I32LE + ATTRIBUTE "float3D" { + DATATYPE H5T_IEEE_F32LE DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): 1, 2, @@ -951,8 +775,24 @@ GROUP "/" { (3,2,0): 23, 24 } } - ATTRIBUTE "float3D" { - DATATYPE H5T_IEEE_F32LE + ATTRIBUTE "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "integer3D" { + DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): 1, 2, @@ -969,27 +809,6 @@ GROUP "/" { (3,2,0): 23, 24 } } - } - GROUP "g1" { - ATTRIBUTE "string" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): "ab", "de" - } - } - ATTRIBUTE "bitfield" { - DATATYPE H5T_STD_B8LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } - DATA { - (0): 0x01, 0x02 - } - } ATTRIBUTE "opaque" { DATATYPE H5T_OPAQUE; @@ -1000,60 +819,83 @@ GROUP "/" { (0): 0x01, 0x02 } } - ATTRIBUTE "compound" { - DATATYPE H5T_COMPOUND { - H5T_STD_I8LE "a"; - H5T_IEEE_F64LE "b"; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + ATTRIBUTE "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0): { - 1, - 2 - }, - (1): { - 3, - 4 - } + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 } - } - ATTRIBUTE "enum" { - DATATYPE H5T_ENUM { - H5T_STD_I32LE; - "RED" 0; - "GREEN" 1; - } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + } + ATTRIBUTE "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { - (0): RED, RED + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 } } - ATTRIBUTE "vlen" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} + ATTRIBUTE "reference" { + DATATYPE H5T_REFERENCE DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0): (1), (2, 3) + (0): DATASET 976 /dset , DATASET 976 /dset } } - ATTRIBUTE "array" { - DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + ATTRIBUTE "reference2D" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + (0,0): DATASET 976 /dset , DATASET 976 /dset , + (1,0): DATASET 976 /dset , DATASET 976 /dset , + (2,0): DATASET 976 /dset , DATASET 976 /dset } } - ATTRIBUTE "integer" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + ATTRIBUTE "reference3D" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { - (0): 1, 2 + (0,0,0): DATASET 976 /dset , DATASET 976 /dset , + (0,1,0): DATASET 976 /dset , DATASET 976 /dset , + (0,2,0): DATASET 976 /dset , DATASET 976 /dset , + (1,0,0): DATASET 976 /dset , DATASET 976 /dset , + (1,1,0): DATASET 976 /dset , DATASET 976 /dset , + (1,2,0): DATASET 976 /dset , DATASET 976 /dset , + (2,0,0): DATASET 976 /dset , DATASET 976 /dset , + (2,1,0): DATASET 976 /dset , DATASET 976 /dset , + (2,2,0): DATASET 976 /dset , DATASET 976 /dset , + (3,0,0): DATASET 976 /dset , DATASET 976 /dset , + (3,1,0): DATASET 976 /dset , DATASET 976 /dset , + (3,2,0): DATASET 976 /dset , DATASET 976 /dset } } - ATTRIBUTE "float" { - DATATYPE H5T_IEEE_F32LE + ATTRIBUTE "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0): 1, 2 + (0): "ab", "de" } } ATTRIBUTE "string2D" { @@ -1070,80 +912,70 @@ GROUP "/" { (2,0): "ij", "kl" } } - ATTRIBUTE "bitfield2D" { - DATATYPE H5T_STD_B8LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { - (0,0): 0x01, 0x02, - (1,0): 0x03, 0x04, - (2,0): 0x05, 0x06 + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" } } - ATTRIBUTE "opaque2D" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0): 0x01, 0x02, - (1,0): 0x03, 0x04, - (2,0): 0x05, 0x06 + (0): (1), (2, 3) } } - ATTRIBUTE "compound2D" { - DATATYPE H5T_COMPOUND { - H5T_STD_I8LE "a"; - H5T_IEEE_F64LE "b"; - } + ATTRIBUTE "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0): { - 1, - 2 - }, - (0,1): { - 3, - 4 - }, - (1,0): { - 5, - 6 - }, - (1,1): { - 7, - 8 - }, - (2,0): { - 9, - 10 - }, - (2,1): { - 11, - 12 - } + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) } } - ATTRIBUTE "enum2D" { - DATATYPE H5T_ENUM { - H5T_STD_I32LE; - "RED" 0; - "GREEN" 1; - } - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { - (0,0): RED, RED, - (1,0): RED, RED, - (2,0): RED, RED + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) } } - ATTRIBUTE "vlen2D" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + } + GROUP "g1" { + ATTRIBUTE "array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0): (0), (1), - (1,0): (2, 3), (4, 5), - (2,0): (6, 7, 8), (9, 10, 11) + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] } } ATTRIBUTE "array2D" { @@ -1155,45 +987,38 @@ GROUP "/" { (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] } } - ATTRIBUTE "integer2D" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { - (0,0): 1, 2, - (1,0): 3, 4, - (2,0): 5, 6 + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] } } - ATTRIBUTE "float2D" { - DATATYPE H5T_IEEE_F32LE - DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + ATTRIBUTE "bitfield" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0): 1, 2, - (1,0): 3, 4, - (2,0): 5, 6 + (0): 0x01, 0x02 } } - ATTRIBUTE "string3D" { - DATATYPE H5T_STRING { - STRSIZE 2; - STRPAD H5T_STR_NULLTERM; - CSET H5T_CSET_ASCII; - CTYPE H5T_C_S1; - } - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0,0): "ab", "cd", - (0,1,0): "ef", "gh", - (0,2,0): "ij", "kl", - (1,0,0): "mn", "pq", - (1,1,0): "rs", "tu", - (1,2,0): "vw", "xz", - (2,0,0): "AB", "CD", - (2,1,0): "EF", "GH", - (2,2,0): "IJ", "KL", - (3,0,0): "MN", "PQ", - (3,1,0): "RS", "TU", - (3,2,0): "VW", "XZ" + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 } } ATTRIBUTE "bitfield3D" { @@ -1214,25 +1039,54 @@ GROUP "/" { (3,2,0): 0x17, 0x18 } } - ATTRIBUTE "opaque3D" { - DATATYPE - H5T_OPAQUE; - OPAQUE_TAG "1-byte opaque type"; - - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + ATTRIBUTE "compound2D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0,0): 0x01, 0x02, - (0,1,0): 0x03, 0x04, - (0,2,0): 0x05, 0x06, - (1,0,0): 0x07, 0x08, - (1,1,0): 0x09, 0x0a, - (1,2,0): 0x0b, 0x0c, - (2,0,0): 0x0d, 0x0e, - (2,1,0): 0x0f, 0x10, - (2,2,0): 0x11, 0x12, - (3,0,0): 0x13, 0x14, - (3,1,0): 0x15, 0x16, - (3,2,0): 0x17, 0x18 + (0,0): { + 1, + 2 + }, + (0,1): { + 3, + 4 + }, + (1,0): { + 5, + 6 + }, + (1,1): { + 7, + 8 + }, + (2,0): { + 9, + 10 + }, + (2,1): { + 11, + 12 + } } } ATTRIBUTE "compound3D" { @@ -1340,6 +1194,30 @@ GROUP "/" { } } } + ATTRIBUTE "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): RED, RED + } + } + ATTRIBUTE "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED + } + } ATTRIBUTE "enum3D" { DATATYPE H5T_ENUM { H5T_STD_I32LE; @@ -1362,44 +1240,24 @@ GROUP "/" { (3,2,0): RED, RED } } - ATTRIBUTE "vlen3D" { - DATATYPE H5T_VLEN { H5T_STD_I32LE} - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } DATA { - (0,0,0): (0), (1), - (0,1,0): (2), (3), - (0,2,0): (4), (5), - (1,0,0): (6, 7), (8, 9), - (1,1,0): (10, 11), (12, 13), - (1,2,0): (14, 15), (16, 17), - (2,0,0): (18, 19, 20), (21, 22, 23), - (2,1,0): (24, 25, 26), (27, 28, 29), - (2,2,0): (30, 31, 32), (33, 34, 35), - (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), - (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), - (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + (0): 1, 2 } } - ATTRIBUTE "array3D" { - DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } - DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + ATTRIBUTE "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } DATA { - (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], - (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], - (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], - (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], - (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], - (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], - (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], - (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], - (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], - (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], - (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], - (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 } } - ATTRIBUTE "integer3D" { - DATATYPE H5T_STD_I32LE + ATTRIBUTE "float3D" { + DATATYPE H5T_IEEE_F32LE DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): 1, 2, @@ -1416,8 +1274,24 @@ GROUP "/" { (3,2,0): 23, 24 } } - ATTRIBUTE "float3D" { - DATATYPE H5T_IEEE_F32LE + ATTRIBUTE "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "integer3D" { + DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } DATA { (0,0,0): 1, 2, @@ -1434,6 +1308,132 @@ GROUP "/" { (3,2,0): 23, 24 } } + ATTRIBUTE "opaque" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): "ab", "de" + } + } + ATTRIBUTE "string2D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): "ab", "cd", + (1,0): "ef", "gh", + (2,0): "ij", "kl" + } + } + ATTRIBUTE "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" + } + } + ATTRIBUTE "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): (1), (2, 3) + } + } + ATTRIBUTE "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) + } + } + ATTRIBUTE "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + } + } } GROUP "g2" { DATASET "array" { -- cgit v0.12