diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2017-05-01 22:25:02 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2017-05-01 22:25:02 (GMT) |
commit | 58c4806cd961e30d9b5658ca449bcb695e7fcb56 (patch) | |
tree | 14cf3d453e5824ef88532cb04ea8fdb94590dfbe /examples/h5dsm_attr_iter.c | |
parent | 72b57518eb02e1df92d0e3ae7b29f09bbafe937c (diff) | |
download | hdf5-58c4806cd961e30d9b5658ca449bcb695e7fcb56.zip hdf5-58c4806cd961e30d9b5658ca449bcb695e7fcb56.tar.gz hdf5-58c4806cd961e30d9b5658ca449bcb695e7fcb56.tar.bz2 |
Implement H5Oopen, H5Oopen_by_addr, H5Acreate_by_name, H5Aopen_by_name,
and H5Aiterate_by_name. Add h5dsm_obj_open.c example. Fix memory leak on dataset open. Other minor
fixes/cleanup.
Diffstat (limited to 'examples/h5dsm_attr_iter.c')
-rw-r--r-- | examples/h5dsm_attr_iter.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/examples/h5dsm_attr_iter.c b/examples/h5dsm_attr_iter.c index c29926e..5ec561c 100644 --- a/examples/h5dsm_attr_iter.c +++ b/examples/h5dsm_attr_iter.c @@ -20,15 +20,15 @@ error: int main(int argc, char *argv[]) { uuid_t pool_uuid; char *pool_grp = NULL; - hid_t file = -1, obj = -1, fapl = -1; + hid_t file = -1, fapl = -1; hsize_t num_attr = 0; herr_t ret; H5VL_daosm_snap_id_t snap_id; (void)MPI_Init(&argc, &argv); - if(argc < 5 || argc > 6) - PRINTF_ERROR("argc must be 5 or 6\n"); + if(argc < 4 || argc > 5) + PRINTF_ERROR("argc must be 4 or 5\n"); /* Parse UUID */ if(0 != uuid_parse(argv[1], pool_uuid)) @@ -47,8 +47,8 @@ int main(int argc, char *argv[]) { ERROR; /* Open snapshot if specified */ - if(argc == 6) { - snap_id = (H5VL_daosm_snap_id_t)atoi(argv[5]); + if(argc == 5) { + snap_id = (H5VL_daosm_snap_id_t)atoi(argv[4]); printf("Opening snapshot %llu\n", (long long unsigned)snap_id); if(H5Pset_daosm_snap_open(fapl, snap_id) < 0) ERROR; @@ -58,29 +58,15 @@ int main(int argc, char *argv[]) { if((file = H5Fopen(argv[2], H5F_ACC_RDONLY, fapl)) < 0) ERROR; - /* Open object */ - if(!strcmp(argv[3], "-d") || !strcmp(argv[3], "-D")) { - if((obj = H5Dopen2(file, argv[4], H5P_DEFAULT)) < 0) - ERROR; - } - else { - if(strcmp(argv[3], "-g") && strcmp(argv[3], "-G")) - PRINTF_ERROR("argv[3] must be -d, -D, -g, or -G\n"); - if((obj = H5Gopen2(file, argv[4], H5P_DEFAULT)) < 0) - ERROR; - } - printf("Iterating over attributes\n"); /* Iterate */ - if((ret = H5Aiterate(obj, H5_INDEX_NAME, H5_ITER_NATIVE, &num_attr, iter_cb, &od_test_g)) < 0) + if((ret = H5Aiterate_by_name(file, argv[3], H5_INDEX_NAME, H5_ITER_NATIVE, &num_attr, iter_cb, &od_test_g, H5P_DEFAULT)) < 0) ERROR; printf("Complete. Number of attributes: %d\n", (int)num_attr); /* Close */ - if(H5Oclose(obj) < 0) - ERROR; if(H5Fclose(file) < 0) ERROR; if(H5Pclose(fapl) < 0) @@ -93,7 +79,6 @@ int main(int argc, char *argv[]) { error: H5E_BEGIN_TRY { - H5Oclose(obj); H5Fclose(file); H5Pclose(fapl); } H5E_END_TRY; |