summaryrefslogtreecommitdiffstats
path: root/src/H5G.c
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2012-03-22 19:31:38 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2012-03-22 19:31:38 (GMT)
commit053ae6e11ee81b9ede8469dc906c1fa4c70d6228 (patch)
treef8c44ca96d5fc45cfa9a61577e91da78a6308caf /src/H5G.c
parent77a3e8e5c9401e2c7872d850d8d03a1947775f29 (diff)
downloadhdf5-053ae6e11ee81b9ede8469dc906c1fa4c70d6228.zip
hdf5-053ae6e11ee81b9ede8469dc906c1fa4c70d6228.tar.gz
hdf5-053ae6e11ee81b9ede8469dc906c1fa4c70d6228.tar.bz2
[svn-r22123] update the VOL GET callbacks to use var_args instead of argc & argv
Diffstat (limited to 'src/H5G.c')
-rw-r--r--src/H5G.c69
1 files changed, 18 insertions, 51 deletions
diff --git a/src/H5G.c b/src/H5G.c
index 0ee943a..df50dd6 100644
--- a/src/H5G.c
+++ b/src/H5G.c
@@ -437,7 +437,7 @@ H5Gget_create_plist(hid_t uid)
FUNC_ENTER_API(FAIL)
H5TRACE1("i", "i", uid);
- if(H5VL_group_get(uid, H5G_GET_GCPL, &ret_value, 0, NULL) < 0)
+ if(H5VL_group_get(uid, H5G_GET_GCPL, 1, &ret_value) < 0)
HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group creation properties")
done:
@@ -459,15 +459,24 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Gget_info(hid_t uid, H5G_info_t *grp_info)
+H5Gget_info(hid_t obj_id, H5G_info_t *grp_info)
{
+ H5I_type_t id_type; /* Type of ID */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
- H5TRACE2("e", "i*x", uid, grp_info);
+ H5TRACE2("e", "i*x", obj_id, grp_info);
- if((ret_value = H5VL_group_get(uid, H5G_GET_INFO, (void *)grp_info, 0, NULL)) < 0)
+ /* Check args */
+ id_type = H5I_get_type(obj_id);
+ if(!(H5I_GROUP_PUBLIC == id_type || H5I_FILE_PUBLIC == id_type))
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid argument")
+ if(!grp_info)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
+
+ if((ret_value = H5VL_group_get(obj_id, H5G_GET_INFO, 1, grp_info)) < 0)
HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info")
+
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Gget_info() */
@@ -490,19 +499,12 @@ herr_t
H5Gget_info_by_name(hid_t loc_id, const char *name, H5G_info_t *grp_info,
hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
- H5G_loc_t grp_loc; /* Location used to open group */
- H5G_name_t grp_path; /* Opened object group hier. path */
- H5O_loc_t grp_oloc; /* Opened object object location */
- hbool_t loc_found = FALSE; /* Location at 'name' found */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE4("e", "i*s*xi", loc_id, name, grp_info, lapl_id);
/* Check args */
- if(H5G_loc(loc_id, &loc) < 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
if(!name || !*name)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
if(!grp_info)
@@ -513,24 +515,10 @@ H5Gget_info_by_name(hid_t loc_id, const char *name, H5G_info_t *grp_info,
if(TRUE != H5P_isa_class(lapl_id, H5P_LINK_ACCESS))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
- /* Set up opened group location to fill in */
- grp_loc.oloc = &grp_oloc;
- grp_loc.path = &grp_path;
- H5G_loc_reset(&grp_loc);
-
- /* Find the group object */
- if(H5G_loc_find(&loc, name, &grp_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0)
- HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "group not found")
- loc_found = TRUE;
-
- /* Retrieve the group's information */
- if(H5G__obj_info(grp_loc.oloc, grp_info/*out*/, H5AC_ind_dxpl_id) < 0)
- HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve group info")
+ if((ret_value = H5VL_group_get(loc_id, H5G_GET_INFO, 3, grp_info, name, lapl_id)) < 0)
+ HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info")
done:
- if(loc_found && H5G_loc_free(&grp_loc) < 0)
- HDONE_ERROR(H5E_SYM, H5E_CANTRELEASE, FAIL, "can't free location")
-
FUNC_LEAVE_API(ret_value)
} /* end H5Gget_info_by_name() */
@@ -553,11 +541,6 @@ herr_t
H5Gget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
H5_iter_order_t order, hsize_t n, H5G_info_t *grp_info, hid_t lapl_id)
{
- H5G_loc_t loc; /* Location of group */
- H5G_loc_t grp_loc; /* Location used to open group */
- H5G_name_t grp_path; /* Opened object group hier. path */
- H5O_loc_t grp_oloc; /* Opened object object location */
- hbool_t loc_found = FALSE; /* Entry at 'name' found */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -565,8 +548,6 @@ H5Gget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
lapl_id);
/* Check args */
- if(H5G_loc(loc_id, &loc) < 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
if(!group_name || !*group_name)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
if(idx_type <= H5_INDEX_UNKNOWN || idx_type >= H5_INDEX_N)
@@ -581,25 +562,11 @@ H5Gget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
if(TRUE != H5P_isa_class(lapl_id, H5P_LINK_ACCESS))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
- /* Set up opened group location to fill in */
- grp_loc.oloc = &grp_oloc;
- grp_loc.path = &grp_path;
- H5G_loc_reset(&grp_loc);
-
- /* Find the object's location, according to the order in the index */
- if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &grp_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0)
- HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "group not found")
- loc_found = TRUE;
-
- /* Retrieve the group's information */
- if(H5G__obj_info(grp_loc.oloc, grp_info/*out*/, H5AC_ind_dxpl_id) < 0)
- HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve group info")
+ if((ret_value = H5VL_group_get(loc_id, H5G_GET_INFO, 6, grp_info, group_name,
+ idx_type, order, n, lapl_id)) < 0)
+ HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info")
done:
- /* Release the object location */
- if(loc_found && H5G_loc_free(&grp_loc) < 0)
- HDONE_ERROR(H5E_SYM, H5E_CANTRELEASE, FAIL, "can't free location")
-
FUNC_LEAVE_API(ret_value)
} /* end H5Gget_info_by_idx() */