diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2015-02-25 04:19:41 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2015-02-25 04:19:41 (GMT) |
commit | 99a3f4d8d4ee1ec3f61a377c1a96a3fe35e9990a (patch) | |
tree | 78c194e22fe4ecd057f1f13c8562b91e824696fb /examples | |
parent | 2ca5b16a9fd79d240d5e4ebe4689033c6c7182ad (diff) | |
download | hdf5-99a3f4d8d4ee1ec3f61a377c1a96a3fe35e9990a.zip hdf5-99a3f4d8d4ee1ec3f61a377c1a96a3fe35e9990a.tar.gz hdf5-99a3f4d8d4ee1ec3f61a377c1a96a3fe35e9990a.tar.bz2 |
[svn-r26297] Changed example and h5dump according to suggestions at today's code review VDS-176.
BNF has been updated too. Now h5dump displays VDS like this:
HDF5 "vds.h5" {
GROUP "/" {
DATASET "VDS" {
DATATYPE H5T_STD_I32LE
DATASPACE SIMPLE { ( 4, 6 ) / ( 4, 6 ) }
STORAGE_LAYOUT {
VIRTUAL {
HYPERSLAB { (0,0)-(0,5) };
a.h5;
A;
ALL;
HYPERSLAB { (1,0)-(1,5) };
b.h5;
B;
ALL;
HYPERSLAB { (2,0)-(2,5) };
c.h5;
C;
ALL;
}
}
}
FILTERS {
.......
I just commented the code with "EIP" and didn't delete to simplify the review with Allen tomorrow.
Tested on jam
Diffstat (limited to 'examples')
-rw-r--r-- | examples/CMakeLists.txt | 1 | ||||
-rw-r--r-- | examples/h5_vds.c | 31 |
2 files changed, 15 insertions, 17 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index da8174b..b7c9c63 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -34,6 +34,7 @@ set (examples h5_extlink h5_elink_unix2win h5_shared_mesg + h5_vds ) foreach (example ${examples}) diff --git a/examples/h5_vds.c b/examples/h5_vds.c index 4c8e1dd..dea2ee6 100644 --- a/examples/h5_vds.c +++ b/examples/h5_vds.c @@ -47,8 +47,8 @@ main (void) hid_t file, space, src_space, vspace, dset; /* Handles */ hid_t dcpl; herr_t status; - hsize_t vdsdims[2] = {VDSDIM0, VDSDIM1}, /* Datasets dimension */ - dims[1] = {DIM0}, + hsize_t vdsdims[2] = {VDSDIM0, VDSDIM1}, /* Virtual satasets dimension */ + dims[1] = {DIM0}, /* Source datasets dimensions */ start[2], /* Hyperslab parameters */ stride[2], count[2], @@ -89,12 +89,12 @@ main (void) status = H5Dclose (dset); status = H5Fclose (file); } + /* Create file in which virtual dataset will be stored. */ file = H5Fcreate (FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); /* Create VDS dataspace. */ space = H5Screate_simple (RANK2, vdsdims, NULL); - src_space = H5Screate_simple (RANK1, dims, NULL); /* Set VDS creation property. */ dcpl = H5Pcreate (H5P_DATASET_CREATE); @@ -110,16 +110,16 @@ main (void) /* * Build the mappings. - * - * Select the first, the second and the third rows and map each row to the data in the - * corresponding source datasets. + * Selections in the source datasets are H5S_ALL. + * In the virtual dataset we select the first, the second and the third rows + * and map each row to the data in the corresponding source dataset. */ + src_space = H5Screate_simple (RANK1, dims, NULL); for (i = 0; i < 3; i++) { start[0] = (hsize_t)i; /* Select i-th row in the virtual dataset; selection in the source datasets is the same. */ status = H5Sselect_hyperslab (space, H5S_SELECT_SET, start, NULL, count, block); status = H5Pset_virtual (dcpl, space, SRC_FILE[i], SRC_DATASET[i], src_space); - status = H5Sselect_none (space); } /* Create a virtual dataset. */ @@ -176,14 +176,12 @@ main (void) status = H5Sget_select_hyper_blocklist (vspace, (hsize_t)0, nblocks, buf); for (l=0; l<nblocks; l++) { printf("("); - for (k=0; k<RANK2-1; k++) printf("%d,", (int)buf[k]); - printf("%d", (int)buf[k]); - printf(") - "); - printf("("); - for (k=0; k<RANK2-1; k++) printf("%d,", (int)buf[RANK2+k]); - printf("%d", (int)buf[RANK2+k]); - printf(")"); - printf ("\n"); + for (k=0; k<RANK2-1; k++) + printf("%d,", (int)buf[k]); + printf("%d ) - (", (int)buf[k]); + for (k=0; k<RANK2-1; k++) + printf("%d,", (int)buf[RANK2+k]); + printf("%d)\n", (int)buf[RANK2+k]); } } /* Get source file name. */ @@ -204,8 +202,7 @@ main (void) /* Make sure it is ALL selection and then print the coordinates. */ if(H5Sget_select_type(src_space) == H5S_SEL_ALL) { - printf("(0) - (%d)", DIM0-1); - printf ("\n"); + printf("(0) - (%d) \n", DIM0-1); } H5Sclose(vspace); H5Sclose(src_space); |