diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2018-03-15 21:54:30 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2018-03-15 21:54:30 (GMT) |
commit | 4a17aff4085ad6ee265b95730aca3f493056dec8 (patch) | |
tree | 8bfb665c6d95a2e3520fa1bb0ff54d95aff3923f /src/H5Goh.c | |
parent | 853ae26333592faf69cd8c454ef92ffea8549df5 (diff) | |
download | hdf5-4a17aff4085ad6ee265b95730aca3f493056dec8.zip hdf5-4a17aff4085ad6ee265b95730aca3f493056dec8.tar.gz hdf5-4a17aff4085ad6ee265b95730aca3f493056dec8.tar.bz2 |
Add API context interface and use it throughout the library.
Diffstat (limited to 'src/H5Goh.c')
-rw-r--r-- | src/H5Goh.c | 116 |
1 files changed, 57 insertions, 59 deletions
diff --git a/src/H5Goh.c b/src/H5Goh.c index 977fc2d..38570f9 100644 --- a/src/H5Goh.c +++ b/src/H5Goh.c @@ -43,15 +43,13 @@ /* Local Prototypes */ /********************/ -static void *H5O_group_get_copy_file_udata(void); -static void H5O_group_free_copy_file_udata(void *udata); -static htri_t H5O_group_isa(H5O_t *loc); -static hid_t H5O_group_open(const H5G_loc_t *obj_loc, hid_t lapl_id, - hid_t dxpl_id, hbool_t app_ref); -static void *H5O_group_create(H5F_t *f, void *_crt_info, H5G_loc_t *obj_loc, - hid_t dxpl_id); -static H5O_loc_t *H5O_group_get_oloc(hid_t obj_id); -static herr_t H5O_group_bh_info(const H5O_loc_t *loc, hid_t dxpl_id, H5O_t *oh, +static void *H5O__group_get_copy_file_udata(void); +static void H5O__group_free_copy_file_udata(void *udata); +static htri_t H5O__group_isa(const H5O_t *loc); +static hid_t H5O__group_open(const H5G_loc_t *obj_loc, hbool_t app_ref); +static void *H5O__group_create(H5F_t *f, void *_crt_info, H5G_loc_t *obj_loc); +static H5O_loc_t *H5O__group_get_oloc(hid_t obj_id); +static herr_t H5O__group_bh_info(const H5O_loc_t *loc, H5O_t *oh, H5_ih_info_t *bh_info); @@ -73,13 +71,13 @@ static herr_t H5O_group_bh_info(const H5O_loc_t *loc, hid_t dxpl_id, H5O_t *oh, const H5O_obj_class_t H5O_OBJ_GROUP[1] = {{ H5O_TYPE_GROUP, /* object type */ "group", /* object name, for debugging */ - H5O_group_get_copy_file_udata, /* get 'copy file' user data */ - H5O_group_free_copy_file_udata, /* free 'copy file' user data */ - H5O_group_isa, /* "isa" message */ - H5O_group_open, /* open an object of this class */ - H5O_group_create, /* create an object of this class */ - H5O_group_get_oloc, /* get an object header location for an object */ - H5O_group_bh_info, /* get the index & heap info for an object */ + H5O__group_get_copy_file_udata, /* get 'copy file' user data */ + H5O__group_free_copy_file_udata, /* free 'copy file' user data */ + H5O__group_isa, /* "isa" message */ + H5O__group_open, /* open an object of this class */ + H5O__group_create, /* create an object of this class */ + H5O__group_get_oloc, /* get an object header location for an object */ + H5O__group_bh_info, /* get the index & heap info for an object */ NULL /* flush an opened object of this class */ }}; @@ -88,7 +86,7 @@ H5FL_DEFINE(H5G_copy_file_ud_t); /*------------------------------------------------------------------------- - * Function: H5O_group_get_copy_file_udata + * Function: H5O__group_get_copy_file_udata * * Purpose: Allocates the user data needed for copying a group's * object header from file to file. @@ -103,11 +101,11 @@ H5FL_DEFINE(H5G_copy_file_ud_t); *------------------------------------------------------------------------- */ static void * -H5O_group_get_copy_file_udata(void) +H5O__group_get_copy_file_udata(void) { void *ret_value = NULL; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Allocate space for the 'copy file' user data for copying groups. * Currently this is only a ginfo, so there is no specific struct type for @@ -117,11 +115,11 @@ H5O_group_get_copy_file_udata(void) done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_group_get_copy_file_udata() */ +} /* end H5O__group_get_copy_file_udata() */ /*------------------------------------------------------------------------- - * Function: H5O_group_free_copy_file_udata + * Function: H5O__group_free_copy_file_udata * * Purpose: Release the user data needed for copying a group's * object header from file to file. @@ -134,11 +132,11 @@ done: *------------------------------------------------------------------------- */ static void -H5O_group_free_copy_file_udata(void *_udata) +H5O__group_free_copy_file_udata(void *_udata) { H5G_copy_file_ud_t *udata = (H5G_copy_file_ud_t *)_udata; - FUNC_ENTER_NOAPI_NOINIT_NOERR + FUNC_ENTER_STATIC_NOERR /* Sanity check */ HDassert(udata); @@ -150,11 +148,11 @@ H5O_group_free_copy_file_udata(void *_udata) udata = H5FL_FREE(H5G_copy_file_ud_t, udata); FUNC_LEAVE_NOAPI_VOID -} /* end H5O_group_free_copy_file_udata() */ +} /* end H5O__group_free_copy_file_udata() */ /*------------------------------------------------------------------------- - * Function: H5O_group_isa + * Function: H5O__group_isa * * Purpose: Determines if an object has the requisite messages for being * a group. @@ -171,13 +169,13 @@ H5O_group_free_copy_file_udata(void *_udata) *------------------------------------------------------------------------- */ static htri_t -H5O_group_isa(struct H5O_t *oh) +H5O__group_isa(const H5O_t *oh) { htri_t stab_exists; /* Whether the 'stab' message is in the object header */ htri_t linfo_exists; /* Whether the 'linfo' message is in the object header */ htri_t ret_value = FAIL; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC HDassert(oh); @@ -191,11 +189,11 @@ H5O_group_isa(struct H5O_t *oh) done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_group_isa() */ +} /* end H5O__group_isa() */ /*------------------------------------------------------------------------- - * Function: H5O_group_open + * Function: H5O__group_open * * Purpose: Open a group at a particular location * @@ -208,17 +206,17 @@ done: *------------------------------------------------------------------------- */ static hid_t -H5O_group_open(const H5G_loc_t *obj_loc, hid_t H5_ATTR_UNUSED lapl_id, hid_t dxpl_id, hbool_t app_ref) +H5O__group_open(const H5G_loc_t *obj_loc, hbool_t app_ref) { H5G_t *grp = NULL; /* Group opened */ hid_t ret_value = H5I_INVALID_HID; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC HDassert(obj_loc); /* Open the group */ - if(NULL == (grp = H5G_open(obj_loc, dxpl_id))) + if(NULL == (grp = H5G_open(obj_loc))) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group") /* Register an ID for the group */ @@ -231,11 +229,11 @@ done: HDONE_ERROR(H5E_SYM, H5E_CLOSEERROR, FAIL, "unable to release group") FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_group_open() */ +} /* end H5O__group_open() */ /*------------------------------------------------------------------------- - * Function: H5O_group_create + * Function: H5O__group_create * * Purpose: Create a group in a file * @@ -248,13 +246,13 @@ done: *------------------------------------------------------------------------- */ static void * -H5O_group_create(H5F_t *f, void *_crt_info, H5G_loc_t *obj_loc, hid_t dxpl_id) +H5O__group_create(H5F_t *f, void *_crt_info, H5G_loc_t *obj_loc) { H5G_obj_create_t *crt_info = (H5G_obj_create_t *)_crt_info; /* Group creation parameters */ H5G_t *grp = NULL; /* New group created */ void *ret_value = NULL; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Sanity checks */ HDassert(f); @@ -262,7 +260,7 @@ H5O_group_create(H5F_t *f, void *_crt_info, H5G_loc_t *obj_loc, hid_t dxpl_id) HDassert(obj_loc); /* Create the the group */ - if(NULL == (grp = H5G__create(f, crt_info, dxpl_id))) + if(NULL == (grp = H5G__create(f, crt_info))) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, NULL, "unable to create group") /* Set up the new group's location */ @@ -280,11 +278,11 @@ done: HDONE_ERROR(H5E_SYM, H5E_CLOSEERROR, NULL, "unable to release group") FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_group_create() */ +} /* end H5O__group_create() */ /*------------------------------------------------------------------------- - * Function: H5O_group_get_oloc + * Function: H5O__group_get_oloc * * Purpose: Retrieve the object header location for an open object * @@ -297,12 +295,12 @@ done: *------------------------------------------------------------------------- */ static H5O_loc_t * -H5O_group_get_oloc(hid_t obj_id) +H5O__group_get_oloc(hid_t obj_id) { H5G_t *grp; /* Group opened */ H5O_loc_t *ret_value = NULL; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Get the group */ if(NULL == (grp = (H5G_t *)H5I_object(obj_id))) @@ -314,11 +312,11 @@ H5O_group_get_oloc(hid_t obj_id) done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_group_get_oloc() */ +} /* end H5O__group_get_oloc() */ /*------------------------------------------------------------------------- - * Function: H5O_group_bh_info + * Function: H5O__group_bh_info * * Purpose: Retrieve storage for 1.8 btree and heap * Retrieve storage for 1.6 btree and heap via H5G_stab_bh_info() @@ -331,7 +329,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5O_group_bh_info(const H5O_loc_t *loc, hid_t dxpl_id, H5O_t *oh, H5_ih_info_t *bh_info) +H5O__group_bh_info(const H5O_loc_t *loc, H5O_t *oh, H5_ih_info_t *bh_info) { htri_t exists; /* Flag if header message of interest exists */ H5HF_t *fheap = NULL; /* Fractal heap handle */ @@ -339,7 +337,7 @@ H5O_group_bh_info(const H5O_loc_t *loc, hid_t dxpl_id, H5O_t *oh, H5_ih_info_t * H5B2_t *bt2_corder = NULL; /* v2 B-tree handle for creation order index */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT_TAG(dxpl_id, oh->cache_info.addr, FAIL) + FUNC_ENTER_STATIC_TAG(oh->cache_info.addr) /* Sanity check */ HDassert(loc); @@ -355,39 +353,39 @@ H5O_group_bh_info(const H5O_loc_t *loc, hid_t dxpl_id, H5O_t *oh, H5_ih_info_t * H5O_linfo_t linfo; /* Link info message */ /* Get "new style" group info */ - if(NULL == H5O_msg_read_oh(loc->file, dxpl_id, oh, H5O_LINFO_ID, &linfo)) + if(NULL == H5O_msg_read_oh(loc->file, oh, H5O_LINFO_ID, &linfo)) HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't read LINFO message") /* Check if name index available */ if(H5F_addr_defined(linfo.name_bt2_addr)) { /* Open the name index v2 B-tree */ - if(NULL == (bt2_name = H5B2_open(loc->file, dxpl_id, linfo.name_bt2_addr, NULL))) + if(NULL == (bt2_name = H5B2_open(loc->file, linfo.name_bt2_addr, NULL))) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index") /* Get name index B-tree size */ - if(H5B2_size(bt2_name, dxpl_id, &bh_info->index_size) < 0) + if(H5B2_size(bt2_name, &bh_info->index_size) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve B-tree storage info for name index") } /* end if */ /* Check if creation order index available */ if(H5F_addr_defined(linfo.corder_bt2_addr)) { /* Open the creation order index v2 B-tree */ - if(NULL == (bt2_corder = H5B2_open(loc->file, dxpl_id, linfo.corder_bt2_addr, NULL))) + if(NULL == (bt2_corder = H5B2_open(loc->file, linfo.corder_bt2_addr, NULL))) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for creation order index") /* Get creation order index B-tree size */ - if(H5B2_size(bt2_corder, dxpl_id, &bh_info->index_size) < 0) + if(H5B2_size(bt2_corder, &bh_info->index_size) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve B-tree storage info for creation order index") } /* end if */ /* Get fractal heap size, if available */ if(H5F_addr_defined(linfo.fheap_addr)) { /* Open the fractal heap for links */ - if(NULL == (fheap = H5HF_open(loc->file, dxpl_id, linfo.fheap_addr))) + if(NULL == (fheap = H5HF_open(loc->file, linfo.fheap_addr))) HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open fractal heap") /* Get heap storage size */ - if(H5HF_size(fheap, dxpl_id, &bh_info->heap_size) < 0) + if(H5HF_size(fheap, &bh_info->heap_size) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve fractal heap storage info") } /* end if */ } /* end if */ @@ -395,23 +393,23 @@ H5O_group_bh_info(const H5O_loc_t *loc, hid_t dxpl_id, H5O_t *oh, H5_ih_info_t * H5O_stab_t stab; /* Info about symbol table */ /* Must be "old style" group, get symbol table message */ - if(NULL == H5O_msg_read_oh(loc->file, dxpl_id, oh, H5O_STAB_ID, &stab)) + if(NULL == H5O_msg_read_oh(loc->file, oh, H5O_STAB_ID, &stab)) HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't find LINFO nor STAB messages") /* Get symbol table size info */ - if(H5G__stab_bh_size(loc->file, dxpl_id, &stab, bh_info) < 0) + if(H5G__stab_bh_size(loc->file, &stab, bh_info) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve symbol table size info") } /* end else */ done: /* Release resources */ - if(fheap && H5HF_close(fheap, dxpl_id) < 0) + if(fheap && H5HF_close(fheap) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close fractal heap") - if(bt2_name && H5B2_close(bt2_name, dxpl_id) < 0) + if(bt2_name && H5B2_close(bt2_name) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index") - if(bt2_corder && H5B2_close(bt2_corder, dxpl_id) < 0) + if(bt2_corder && H5B2_close(bt2_corder) < 0) HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for creation order index") - FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL) -} /* end H5O_group_bh_info() */ + FUNC_LEAVE_NOAPI_TAG(ret_value) +} /* end H5O__group_bh_info() */ |