summaryrefslogtreecommitdiffstats
path: root/examples/h5dsm_attr_iter.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2017-05-01 22:25:02 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2017-05-01 22:25:02 (GMT)
commit58c4806cd961e30d9b5658ca449bcb695e7fcb56 (patch)
tree14cf3d453e5824ef88532cb04ea8fdb94590dfbe /examples/h5dsm_attr_iter.c
parent72b57518eb02e1df92d0e3ae7b29f09bbafe937c (diff)
downloadhdf5-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.c27
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;