diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 14:04:36 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 14:04:36 (GMT) |
commit | f1ba03cea5b82699a984c80bd2deac14fdc8df18 (patch) | |
tree | ebe777c3e0b83f4c4cec9212731da9ebe0a0cfd3 /tools/lib/h5tools_ref.c | |
parent | 10343c197906415388f2a4c8d292e21d25cf7381 (diff) | |
download | hdf5-f1ba03cea5b82699a984c80bd2deac14fdc8df18.zip hdf5-f1ba03cea5b82699a984c80bd2deac14fdc8df18.tar.gz hdf5-f1ba03cea5b82699a984c80bd2deac14fdc8df18.tar.bz2 |
Source formatted
Diffstat (limited to 'tools/lib/h5tools_ref.c')
-rw-r--r-- | tools/lib/h5tools_ref.c | 99 |
1 files changed, 50 insertions, 49 deletions
diff --git a/tools/lib/h5tools_ref.c b/tools/lib/h5tools_ref.c index 0e1fa03..8d18f0e 100644 --- a/tools/lib/h5tools_ref.c +++ b/tools/lib/h5tools_ref.c @@ -19,7 +19,6 @@ #include "h5trav.h" #include "H5VLnative_private.h" - /* * Table to look up a path name for an object * reference. @@ -36,11 +35,11 @@ typedef struct { H5O_token_t obj_token; /* Object token */ - char *path; /* Object path */ + char * path; /* Object path */ } ref_path_node_t; -static H5SL_t *ref_path_table = NULL; /* the "table" (implemented with a skip list) */ -static hid_t thefile = (-1); +static H5SL_t *ref_path_table = NULL; /* the "table" (implemented with a skip list) */ +static hid_t thefile = (-1); static int ref_path_table_put(const char *, const H5O_token_t *token); @@ -58,14 +57,14 @@ static int ref_path_table_put(const char *, const H5O_token_t *token); *------------------------------------------------------------------------- */ static herr_t -free_ref_path_info(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *operator_data/*in,out*/) +free_ref_path_info(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *operator_data /*in,out*/) { ref_path_node_t *node = (ref_path_node_t *)item; HDfree(node->path); HDfree(node); - return(0); + return (0); } /*------------------------------------------------------------------------- @@ -81,11 +80,11 @@ free_ref_path_info(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *op *------------------------------------------------------------------------- */ static herr_t -init_ref_path_cb(const char *obj_name, const H5O_info2_t *oinfo, - const char *already_seen, void H5_ATTR_UNUSED *_udata) +init_ref_path_cb(const char *obj_name, const H5O_info2_t *oinfo, const char *already_seen, + void H5_ATTR_UNUSED *_udata) { /* Check if the object is already in the path table */ - if(NULL == already_seen) { + if (NULL == already_seen) { /* Insert the object into the path table */ ref_path_table_put(obj_name, &oinfo->token); } /* end if */ @@ -109,11 +108,11 @@ init_ref_path_cb(const char *obj_name, const H5O_info2_t *oinfo, static int ref_path_table_cmp(const void *key1, const void *key2) { - const H5O_token_t *token1 = (const H5O_token_t *)key1; - const H5O_token_t *token2 = (const H5O_token_t *)key2; - int cmp_value = 0; + const H5O_token_t *token1 = (const H5O_token_t *)key1; + const H5O_token_t *token2 = (const H5O_token_t *)key2; + int cmp_value = 0; - if(thefile > 0) + if (thefile > 0) H5Otoken_cmp(thefile, token1, token2, &cmp_value); else cmp_value = HDmemcmp(token1, token2, sizeof(H5O_token_t)); @@ -136,18 +135,18 @@ static int init_ref_path_table(void) { /* Sanity check */ - if(thefile > 0) { + if (thefile > 0) { /* Create skip list to store reference path information */ - if((ref_path_table = H5SL_create(H5SL_TYPE_GENERIC, ref_path_table_cmp)) == NULL) + if ((ref_path_table = H5SL_create(H5SL_TYPE_GENERIC, ref_path_table_cmp)) == NULL) return (-1); /* Iterate over objects in this file */ - if(h5trav_visit(thefile, "/", TRUE, TRUE, init_ref_path_cb, NULL, NULL, H5O_INFO_BASIC) < 0) { + if (h5trav_visit(thefile, "/", TRUE, TRUE, init_ref_path_cb, NULL, NULL, H5O_INFO_BASIC) < 0) { error_msg("unable to construct reference path table\n"); h5tools_setstatus(EXIT_FAILURE); } /* end if */ - return(0); + return (0); } else return (-1); @@ -170,10 +169,10 @@ int term_ref_path_table(void) { /* Destroy reference path table, freeing all memory */ - if(ref_path_table) + if (ref_path_table) H5SL_destroy(ref_path_table, free_ref_path_info, NULL); - return(0); + return (0); } /*------------------------------------------------------------------------- @@ -198,24 +197,24 @@ ref_path_table_lookup(const char *thepath, H5O_token_t *token) { H5O_info2_t oi; - if((thepath == NULL) || (HDstrlen(thepath) == 0)) + if ((thepath == NULL) || (HDstrlen(thepath) == 0)) return -1; /* Allow lookups on the root group, even though it doesn't have any link info */ - if(HDstrcmp(thepath, "/")) { - H5L_info2_t li; + if (HDstrcmp(thepath, "/")) { + H5L_info2_t li; /* Check for external link first, so we don't return the OID of an object in another file */ - if(H5Lget_info2(thefile, thepath, &li, H5P_DEFAULT) < 0) + if (H5Lget_info2(thefile, thepath, &li, H5P_DEFAULT) < 0) return -1; /* UD links can't be followed, so they always "dangle" like soft links. */ - if(li.type >= H5L_TYPE_UD_MIN) + if (li.type >= H5L_TYPE_UD_MIN) return -1; } /* end if */ /* Get the object info now */ /* (returns failure for dangling soft links) */ - if(H5Oget_info_by_name3(thefile, thepath, &oi, H5O_INFO_BASIC, H5P_DEFAULT) < 0) + if (H5Oget_info_by_name3(thefile, thepath, &oi, H5O_INFO_BASIC, H5P_DEFAULT) < 0) return -1; /* Return object token through parameter */ @@ -248,14 +247,14 @@ ref_path_table_put(const char *path, const H5O_token_t *token) { ref_path_node_t *new_node; - if(ref_path_table && path) { - if((new_node = (ref_path_node_t *)HDmalloc(sizeof(ref_path_node_t))) == NULL) - return(-1); + if (ref_path_table && path) { + if ((new_node = (ref_path_node_t *)HDmalloc(sizeof(ref_path_node_t))) == NULL) + return (-1); HDmemcpy(&new_node->obj_token, token, sizeof(H5O_token_t)); new_node->path = HDstrdup(path); - return(H5SL_insert(ref_path_table, new_node, &(new_node->obj_token))); + return (H5SL_insert(ref_path_table, new_node, &(new_node->obj_token))); } else return (-1); @@ -266,7 +265,9 @@ ref_path_table_put(const char *path, const H5O_token_t *token) */ int xid = 1; -int get_next_xid(void) { +int +get_next_xid(void) +{ return xid++; } @@ -279,10 +280,11 @@ int get_next_xid(void) { haddr_t fake_xid = HADDR_MAX; void -get_fake_token(H5O_token_t *token) { - if(thefile > 0) { +get_fake_token(H5O_token_t *token) +{ + if (thefile > 0) { /* TODO: potential for this to be called with non-native connector objects */ - if(H5VLnative_addr_to_token(thefile, fake_xid, token) < 0) + if (H5VLnative_addr_to_token(thefile, fake_xid, token) < 0) *token = H5O_TOKEN_UNDEF; fake_xid--; } @@ -305,7 +307,7 @@ ref_path_table_gen_fake(const char *path, H5O_token_t *token) get_fake_token(token); /* Create ref path table, if it hasn't already been created */ - if(ref_path_table == NULL) + if (ref_path_table == NULL) init_ref_path_table(); /* Insert "fake" object into table */ @@ -328,25 +330,25 @@ ref_path_table_gen_fake(const char *path, H5O_token_t *token) const char * lookup_ref_path(H5R_ref_t refbuf) { - H5O_info2_t oinfo; - H5R_type_t ref_type; - hid_t ref_object; + H5O_info2_t oinfo; + H5R_type_t ref_type; + hid_t ref_object; ref_path_node_t *node; /* Be safer for h5ls */ - if(thefile < 0) - return(NULL); + if (thefile < 0) + return (NULL); /* Retrieve reference type */ - if(H5R_BADTYPE == (ref_type = H5Rget_type(&refbuf))) - return(NULL); + if (H5R_BADTYPE == (ref_type = H5Rget_type(&refbuf))) + return (NULL); /* Open the referenced object */ switch (ref_type) { case H5R_OBJECT1: case H5R_OBJECT2: - if((ref_object = H5Ropen_object(&refbuf, H5P_DEFAULT, H5P_DEFAULT)) < 0) - return(NULL); + if ((ref_object = H5Ropen_object(&refbuf, H5P_DEFAULT, H5P_DEFAULT)) < 0) + return (NULL); break; /* Invalid referenced object type */ @@ -356,20 +358,20 @@ lookup_ref_path(H5R_ref_t refbuf) case H5R_MAXTYPE: case H5R_BADTYPE: default: - return(NULL); + return (NULL); } /* Retrieve info about the referenced object */ - if(H5Oget_info3(ref_object, &oinfo, H5O_INFO_ALL) < 0) - return(NULL); + if (H5Oget_info3(ref_object, &oinfo, H5O_INFO_ALL) < 0) + return (NULL); /* Create ref path table, if it hasn't already been created */ - if(ref_path_table == NULL) + if (ref_path_table == NULL) init_ref_path_table(); node = (ref_path_node_t *)H5SL_search(ref_path_table, &oinfo.token); - return(node ? node->path : NULL); + return (node ? node->path : NULL); } /*------------------------------------------------------------------------- @@ -394,4 +396,3 @@ fill_ref_path_table(hid_t fid) return 0; } - |