diff options
Diffstat (limited to 'src/H5M.c')
-rw-r--r-- | src/H5M.c | 508 |
1 files changed, 233 insertions, 275 deletions
@@ -1,13 +1,13 @@ /**************************************************************************** -* NCSA HDF * -* Software Development Group * -* National Center for Supercomputing Applications * -* University of Illinois at Urbana-Champaign * -* 605 E. Springfield, Champaign IL 61820 * -* * -* For conditions of distribution and use, see the accompanying * -* hdf/COPYING file. * -* * +* NCSA HDF * +* Software Development Group * +* National Center for Supercomputing Applications * +* University of Illinois at Urbana-Champaign * +* 605 E. Springfield, Champaign IL 61820 * +* * +* For conditions of distribution and use, see the accompanying * +* hdf/COPYING file. * +* * ****************************************************************************/ #ifdef RCSID @@ -23,20 +23,19 @@ static char RcsId[] = "@(#)$Revision$"; HDF5 "Meta-Object" routines EXPORTED ROUTINES - H5Mcreate -- Create an object H5Maccess -- Start access to an existing object - H5Mcopy -- Copy an object - H5Mfind_name -- Find an object by name + H5Mcopy -- Copy an object + H5Mopen -- Find an object by name H5Mname_len -- Get the length of an object's name H5Mget_name -- Get an object's name H5Mset_name -- Set an object's name H5Msearch -- Wildcard search for an object by name - H5Mindex -- Get an object by index - H5Mflush -- Flush an object out to disk + H5Mindex -- Get an object by index + H5Mflush -- Flush an object out to disk H5Mdelete -- Delete an object from disk H5Mget_file -- Get the file ID for an object H5Mget_file -- Get the parent ID for an object - H5Mrelease -- Release access to an object + H5Mclose -- Release access to an object LIBRARY-SCOPED ROUTINES @@ -44,94 +43,93 @@ static char RcsId[] = "@(#)$Revision$"; H5M_init_interface -- initialize the interface + */ -#include <H5private.h> /* Generic functions */ -#include <H5Cprivate.h> /* Template interface */ +#include <H5private.h> /* Generic functions */ +#include <H5Cprivate.h> /* Template interface */ #include <H5Dprivate.h> /* Dataset interface */ -#include <H5Eprivate.h> /*error handling */ +#include <H5Eprivate.h> /*error handling */ #include <H5Pprivate.h> /* Dataspace functions */ -#include <H5Tprivate.h> /* Datatype interface */ +#include <H5Tprivate.h> /* Datatype interface */ #include <H5Mprivate.h> /* Meta-object interface */ -#include <H5Cprivate.h> /* Template interface */ +#include <H5Cprivate.h> /* Template interface */ #define PABLO_MASK H5M_mask /*--------------------- Locally scoped variables -----------------------------*/ -/* Whether we've installed the library termination function yet for this interface */ -static intn interface_initialize_g = FALSE; - static meta_func_t meta_func_arr[]={ - { /* Template object meta-functions (defined in H5C.c) */ - H5_TEMPLATE, /* File-Creation Template Type ID */ - H5C_create, /* File-Creation Template Create */ - NULL, /* File-Creation Template Access */ - H5C_copy, /* File-Creation Template Copy */ - NULL, /* File-Creation Template FindName */ - NULL, /* File-Creation Template NameLen */ - NULL, /* File-Creation Template GetName */ - NULL, /* File-Creation Template SetName */ - NULL, /* File-Creation Template Search */ - NULL, /* File-Creation Template Index */ - NULL, /* File-Creation Template Flush */ - NULL, /* File-Creation Template Delete */ - NULL, /* File-Creation Template GetParent */ - NULL, /* File-Creation Template GetFile */ - H5C_release /* File-Creation Template Release */ + { /* Template object meta-functions (defined in H5C.c) */ + H5_TEMPLATE_0, /* File-Creation Template Type ID */ + NULL, /* File-Creation Template Create */ + NULL, /* File-Creation Template Access */ + H5Ccopy, /* File-Creation Template Copy */ + NULL, /* File-Creation Template FindName */ + NULL, /* File-Creation Template NameLen */ + NULL, /* File-Creation Template GetName */ + NULL, /* File-Creation Template SetName */ + NULL, /* File-Creation Template Search */ + NULL, /* File-Creation Template Index */ + NULL, /* File-Creation Template Flush */ + NULL, /* File-Creation Template Delete */ + NULL, /* File-Creation Template GetParent */ + NULL, /* File-Creation Template GetFile */ + H5Cclose /* File-Creation Template Release */ }, - { /* Datatype object meta-functions (defined in H5T.c) */ - H5_DATATYPE, /* Datatype Type ID */ - H5T_create, /* Datatype Create */ - NULL, /* Datatype Access */ - NULL, /* Dataspace Copy */ - NULL, /* Datatype FindName */ - NULL, /* Datatype NameLen */ - NULL, /* Datatype GetName */ - NULL, /* Datatype SetName */ - NULL, /* Datatype Search */ - NULL, /* Datatype Index */ - NULL, /* Datatype Flush */ - NULL, /* Datatype Delete */ - NULL, /* Datatype GetParent */ - NULL, /* Datatype GetFile */ - H5T_release /* Datatype Release */ + { /* Datatype object meta-functions (defined in H5T.c) */ + H5_DATATYPE, /* Datatype Type ID */ + NULL, /* Datatype Create */ + NULL, /* Datatype Access */ + H5Tcopy, /* Dataspace Copy */ + NULL, /* Datatype FindName */ + NULL, /* Datatype NameLen */ + NULL, /* Datatype GetName */ + NULL, /* Datatype SetName */ + NULL, /* Datatype Search */ + NULL, /* Datatype Index */ + NULL, /* Datatype Flush */ + NULL, /* Datatype Delete */ + NULL, /* Datatype GetParent */ + NULL, /* Datatype GetFile */ + H5Tclose /* Datatype Release */ }, - { /* Dimensionality object meta-functions (defined in H5P.c) */ - H5_DATASPACE, /* Dimensionality Type ID */ - H5P_create, /* Dimensionality Create */ - NULL, /* Dimensionality Access */ - NULL, /* Dimensionality Copy */ - NULL, /* Dimensionality FindName */ - NULL, /* Dimensionality NameLen */ - NULL, /* Dimensionality GetName */ - NULL, /* Dimensionality SetName */ - NULL, /* Dimensionality Search */ - NULL, /* Dimensionality Index */ - NULL, /* Dimensionality Flush */ - NULL, /* Dimensionality Delete */ - NULL, /* Dimensionality GetParent */ - NULL, /* Dimensionality GetFile */ - H5P_release /* Dimensionality Release */ + { /* Dimensionality object meta-functions (defined in H5P.c) */ + H5_DATASPACE, /* Dimensionality Type ID */ + NULL, /* Dimensionality Create */ + NULL, /* Dimensionality Access */ + NULL, /* Dimensionality Copy */ + NULL, /* Dimensionality FindName */ + NULL, /* Dimensionality NameLen */ + NULL, /* Dimensionality GetName */ + NULL, /* Dimensionality SetName */ + NULL, /* Dimensionality Search */ + NULL, /* Dimensionality Index */ + NULL, /* Dimensionality Flush */ + NULL, /* Dimensionality Delete */ + NULL, /* Dimensionality GetParent */ + NULL, /* Dimensionality GetFile */ + H5Pclose /* Dimensionality Release */ }, - { /* Dataset object meta-functions (defined in H5D.c) */ - H5_DATASET, /* Dataset Type ID */ - H5D_create, /* Dataset Create */ - NULL, /* Dataset Access */ - NULL, /* Dataset Copy */ - H5D_find_name, /* Dataset FindName */ - NULL, /* Dataset NameLen */ - NULL, /* Dataset GetName */ - NULL, /* Dataset SetName */ - NULL, /* Dataset Search */ - NULL, /* Dataset Index */ - H5D_flush, /* Dataset Flush */ - NULL, /* Dataset Delete */ - NULL, /* Dataset GetParent */ - NULL, /* Dataset GetFile */ - H5D_release /* Dataset Release */ + { /* Dataset object meta-functions (defined in H5D.c) */ + H5_DATASET, /* Dataset Type ID */ + NULL, /* Dataset Create */ + NULL, /* Dataset Access */ + NULL, /* Dataset Copy */ + H5D_find_name, /* Dataset FindName */ + NULL, /* Dataset NameLen */ + NULL, /* Dataset GetName */ + NULL, /* Dataset SetName */ + NULL, /* Dataset Search */ + NULL, /* Dataset Index */ + NULL, /* Dataset Flush */ + NULL, /* Dataset Delete */ + NULL, /* Dataset GetParent */ + NULL, /* Dataset GetFile */ + H5Dclose /* Dataset Release */ }, }; -/*------------------_-- Local function prototypes ----------------------------*/ +/* Interface initialization */ +static intn interface_initialize_g = FALSE; +#define INTERFACE_INIT H5M_init_interface static herr_t H5M_init_interface(void); /*-------------------------------------------------------------------------- @@ -153,7 +151,7 @@ MODIFICATIONS static herr_t H5M_init_interface(void) { herr_t ret_value = SUCCEED; - FUNC_ENTER (H5M_init_interface, NULL, FAIL); + FUNC_ENTER (H5M_init_interface, FAIL); FUNC_LEAVE(ret_value); } /* H5M_init_interface */ @@ -165,20 +163,21 @@ static herr_t H5M_init_interface(void) Find the type of meta-object to issue a method call on USAGE intn H5M_find_type(type) - hobjtype_t type; IN: Type of object to create + hobjtype_t type; IN: Type of object to create RETURNS Returns the index of the type in the array of methods on success, or FAIL - on failure. + on failure. DESCRIPTION - This function performs a search to find the index of the type of a + This function performs a search to find the index of the type of a meta-object in the array of function pointers. --------------------------------------------------------------------------*/ -static intn H5M_find_type(hobjtype_t type) +static intn +H5M_find_type (group_t type) { - intn i; /* local counting variable */ + intn i; /* local counting variable */ intn ret_value = FAIL; - FUNC_ENTER(H5M_find_type, H5M_init_interface, FAIL); + FUNC_ENTER(H5M_find_type, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; @@ -188,8 +187,8 @@ static intn H5M_find_type(hobjtype_t type) * to a binary search when it becomes too slow. */ for(i=0; i<(sizeof(meta_func_arr)/sizeof(meta_func_t)); i++) - if(type==meta_func_arr[i].type) - HGOTO_DONE(i); + if(type==meta_func_arr[i].type) + HGOTO_DONE(i); done: if(ret_value == FAIL) @@ -204,69 +203,25 @@ done: /*-------------------------------------------------------------------------- NAME - H5Mcreate - PURPOSE - Create a new HDF5 object. - USAGE - hid_t H5Mcreate(owner_id, type, name) - hid_t owner_id; IN: Group/file which owns this object - hobjtype_t type; IN: Type of object to create - const char *name; IN: Name of the object - RETURNS - Returns ID (atom) on success, FAIL on failure - DESCRIPTION - This function re-directs the object's creation into the appropriate - interface, as defined by the function pointers in hdf5fptr.h ---------------------------------------------------------------------------*/ -hid_t H5Mcreate(hid_t owner_id, hobjtype_t type, const char *name) -{ - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; - - FUNC_ENTER(H5Mcreate, H5M_init_interface, FAIL); - - /* Clear errors and check args and all the boring stuff. */ - H5ECLEAR; - if(type<=BADGROUP || type>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); - - i=H5M_find_type(type); - if(meta_func_arr[i].create==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); - ret_value=(meta_func_arr[i].create)(owner_id,type,name); - -done: - if(ret_value == FAIL) - { /* Error condition cleanup */ - - } /* end if */ - - /* Normal function cleanup */ - - FUNC_LEAVE(ret_value); -} /* end H5Mcreate() */ - -/*-------------------------------------------------------------------------- - NAME H5Maccess PURPOSE Start access to an existing HDF5 object. USAGE hid_t H5Maccess(owner_id) - hid_t oid; IN: OID of the object to access. + hid_t oid; IN: OID of the object to access. RETURNS Returns ID (atom) on success, FAIL on failure DESCRIPTION - This function re-directs the object's access into the appropriate + This function re-directs the object's access into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ hid_t H5Maccess(hid_t oid) { - group_t group; - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; + group_t group; + intn i; /* local counting variable */ + hid_t ret_value = SUCCEED; - FUNC_ENTER(H5Maccess, H5M_init_interface, FAIL); + FUNC_ENTER(H5Maccess, FAIL); /* Atom group for incoming object */ group = H5Aatom_group (oid); @@ -274,15 +229,15 @@ hid_t H5Maccess(hid_t oid) /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].access==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].access)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -299,33 +254,33 @@ done: Copy an HDF5 object. USAGE hid_t H5Mcopy(oid) - hid_t oid; IN: Object to copy + hid_t oid; IN: Object to copy RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's copy into the appropriate + This function re-directs the object's copy into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ hid_t H5Mcopy(hid_t oid) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mcopy, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mcopy, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].copy==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].copy)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -342,44 +297,45 @@ done: Find an HDF5 object by name. USAGE hid_t H5Mfind_name(owner_id, type, name) - hid_t owner_id; IN: Group/file in which to search - hobjtype_t type; IN: Type of object to search names of - const char *name; IN: Name of the object to search for + hid_t owner_id; IN: Group/file in which to search + hobjtype_t type; IN: Type of object to search names of + const char *name; IN: Name of the object to search for RETURNS Returns ID (atom) on success, FAIL on failure DESCRIPTION - This function re-directs the object's "find name" into the appropriate + This function re-directs the object's "find name" into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ -hid_t H5Mfind_name(hid_t owner_id, hobjtype_t type, const char *name) +hid_t +H5Mfind_name (hid_t owner_id, group_t type, const char *name) { #ifdef OLD_WAY group_t group=H5Aatom_group(owner_id); /* Atom group for incoming object */ #endif /* OLD_WAY */ - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; + intn i; /* local counting variable */ + hid_t ret_value = SUCCEED; - FUNC_ENTER(H5Mfind_name, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mfind_name, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; #ifdef OLD_WAY if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); #else /* OLD_WAY */ if(type<=BADGROUP || type>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(type); #endif /* OLD_WAY */ if(meta_func_arr[i].find_name==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].find_name)(owner_id,type,name); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -396,33 +352,33 @@ done: Determine the length of the name of an HDF5 object. USAGE uint32 H5Mname_len(oid) - hid_t oid; IN: Object to get name's length + hid_t oid; IN: Object to get name's length RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's "name length" into the appropriate + This function re-directs the object's "name length" into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ uint32 H5Mname_len(hid_t oid) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mname_len, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mname_len, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].name_len==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].name_len)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -439,34 +395,34 @@ done: Get the name of an HDF5 object. USAGE herr_t H5Mget_name(oid, name) - hid_t oid; IN: Object to retreive name of - char *name; OUT: Buffer to place object's name in + hid_t oid; IN: Object to retreive name of + char *name; OUT: Buffer to place object's name in RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's "get name" into the appropriate + This function re-directs the object's "get name" into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ herr_t H5Mget_name(hid_t oid, char *name) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + hid_t ret_value = SUCCEED; - FUNC_ENTER(H5Mget_name, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mget_name, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].get_name==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].get_name)(oid,name); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -483,34 +439,34 @@ done: Set the name of an HDF5 object. USAGE herr_t H5Mget_name(oid, name) - hid_t oid; IN: Object to set name of - const char *name; IN: Name to use for object + hid_t oid; IN: Object to set name of + const char *name; IN: Name to use for object RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's "set name" into the appropriate + This function re-directs the object's "set name" into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ herr_t H5Mset_name(hid_t oid, const char *name) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + hid_t ret_value = SUCCEED; - FUNC_ENTER(H5Mset_name, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mset_name, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].set_name==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].set_name)(oid,name); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -527,35 +483,36 @@ done: Wildcard search for an HDF5 object by name. USAGE hid_t H5Mfind_name(owner_id, type, name) - hid_t owner_id; IN: Group/file in which to search - hobjtype_t type; IN: Type of object to search names of - const char *name; IN: Name of the object to search for + hid_t owner_id; IN: Group/file in which to search + hobjtype_t type; IN: Type of object to search names of + const char *name; IN: Name of the object to search for RETURNS Returns ID (atom) on success, FAIL on failure DESCRIPTION - This function re-directs the object's "search" into the appropriate + This function re-directs the object's "search" into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ -hid_t H5Msearch(hid_t oid, hobjtype_t type, const char *name) +hid_t +H5Msearch (hid_t oid, group_t type, const char *name) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + hid_t ret_value = SUCCEED; - FUNC_ENTER(H5Msearch, H5M_init_interface, FAIL); + FUNC_ENTER(H5Msearch, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].search==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].search)(oid,type,name); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -572,35 +529,36 @@ done: Get an HDF5 object by index. USAGE hid_t H5Mindex(oid, type, idx) - hid_t oid; IN: Group/file in which to find items - hobjtype_t type; IN: Type of object to get - uint32 idx; IN: Index of the object to get + hid_t oid; IN: Group/file in which to find items + hobjtype_t type; IN: Type of object to get + uint32 idx; IN: Index of the object to get RETURNS Returns ID (atom) on success, FAIL on failure DESCRIPTION - This function re-directs the object's "index" into the appropriate + This function re-directs the object's "index" into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ -hid_t H5Mindex(hid_t oid, hobjtype_t type, uint32 idx) +hid_t +H5Mindex (hid_t oid, group_t type, uint32 idx) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - hid_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + hid_t ret_value = SUCCEED; - FUNC_ENTER(H5Mindex, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mindex, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].index==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].index)(oid,type,idx); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -617,35 +575,35 @@ done: Flush an HDF5 object out to a file. USAGE hid_t H5Mflush(oid) - hid_t oid; IN: Object to flush + hid_t oid; IN: Object to flush RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's flush into the appropriate + This function re-directs the object's flush into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ hid_t H5Mflush(hid_t oid) { group_t group; /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mflush, H5M_init_interface, FAIL); /* Insert function initialization code and variables */ + FUNC_ENTER(H5Mflush, FAIL); /* Insert function initialization code and variables */ /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; - group=H5Aatom_group(oid); /* look up group for incoming object */ + group=H5Aatom_group(oid); /* look up group for incoming object */ if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); /* Find correct function pointer set from static array */ i=H5M_find_type(group); if(meta_func_arr[i].flush==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].flush)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -662,34 +620,34 @@ done: Delete an HDF5 object from a file. USAGE herr_t H5Mdelete(oid) - hid_t oid; IN: Object to delete + hid_t oid; IN: Object to delete RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's delete into the appropriate + This function re-directs the object's delete into the appropriate interface, as defined by the function pointers in hdf5fptr.h. Deleting an object implicitly ends access to it. --------------------------------------------------------------------------*/ herr_t H5Mdelete(hid_t oid) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mdelete, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mdelete, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].delete==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].delete)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -706,33 +664,33 @@ done: Get the parent ID an HDF5 object. USAGE hid_t H5Mget_parent(oid) - hid_t oid; IN: Object to query + hid_t oid; IN: Object to query RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's query into the appropriate + This function re-directs the object's query into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ hid_t H5Mget_parent(hid_t oid) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mget_parent, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mget_parent, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].get_parent==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].get_parent)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -749,33 +707,33 @@ done: Get the file ID an HDF5 object. USAGE hid_t H5Mget_file(oid) - hid_t oid; IN: Object to query + hid_t oid; IN: Object to query RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's query into the appropriate + This function re-directs the object's query into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ hid_t H5Mget_file(hid_t oid) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mget_file, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mget_file, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); if(meta_func_arr[i].get_file==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); ret_value=(meta_func_arr[i].get_file)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -787,38 +745,38 @@ done: /*-------------------------------------------------------------------------- NAME - H5Mrelease + H5Mclose PURPOSE Release access to an HDF5 object. USAGE - herr_t H5Mrelease(oid) - hid_t oid; IN: Object to release access to + herr_t H5Mclose(oid) + hid_t oid; IN: Object to release access to RETURNS SUCCEED/FAIL DESCRIPTION - This function re-directs the object's release into the appropriate + This function re-directs the object's release into the appropriate interface, as defined by the function pointers in hdf5fptr.h --------------------------------------------------------------------------*/ -herr_t H5Mrelease(hid_t oid) +herr_t H5Mclose(hid_t oid) { - group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ - intn i; /* local counting variable */ - herr_t ret_value = SUCCEED; + group_t group=H5Aatom_group(oid); /* Atom group for incoming object */ + intn i; /* local counting variable */ + herr_t ret_value = SUCCEED; - FUNC_ENTER(H5Mrelease, H5M_init_interface, FAIL); + FUNC_ENTER(H5Mclose, FAIL); /* Clear errors and check args and all the boring stuff. */ H5ECLEAR; if(group<=BADGROUP || group>=MAXGROUP) - HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); + HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL); i=H5M_find_type(group); - if(meta_func_arr[i].release==NULL) - HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); - ret_value=(meta_func_arr[i].release)(oid); + if(meta_func_arr[i].close==NULL) + HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL); + ret_value=(meta_func_arr[i].close)(oid); done: - if(ret_value == FAIL) + if(ret_value == FAIL) { /* Error condition cleanup */ } /* end if */ @@ -826,5 +784,5 @@ done: /* Normal function cleanup */ FUNC_LEAVE(ret_value); -} /* end H5Mrelease() */ +} |