diff options
Diffstat (limited to 'fortran/src/H5Af.c')
-rw-r--r-- | fortran/src/H5Af.c | 800 |
1 files changed, 13 insertions, 787 deletions
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c index 5fdc27e..0be225b 100644 --- a/fortran/src/H5Af.c +++ b/fortran/src/H5Af.c @@ -35,7 +35,7 @@ *---------------------------------------------------------------------------*/ int_f nh5acreate_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id, - hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *aapl, hid_t_f *attr_id) + hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *attr_id) { char *c_name = NULL; /* Buffer to hold C string */ int_f ret_value = 0; /* Return value */ @@ -49,7 +49,7 @@ nh5acreate_c(hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id, /* * Call H5Acreate2 function. */ - if((*attr_id = (hid_t_f)H5Acreate2((hid_t)*obj_id, c_name, (hid_t)*type_id, (hid_t)*space_id, (hid_t)*crt_prp, (hid_t)*aapl)) < 0) + if((*attr_id = (hid_t_f)H5Acreate2((hid_t)*obj_id, c_name, (hid_t)*type_id, (hid_t)*space_id, (hid_t)*crt_prp, H5P_DEFAULT)) < 0) HGOTO_DONE(FAIL); done: @@ -959,7 +959,7 @@ done: * Name: h5aget_name_c * Purpose: Call H5Aget_name to get attribute's name * Inputs: attr_id - attribute identifier - * bufsize - size of the buffer + * bufsize -size of the buffer * Outputs: buf - buffer to hold the name * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal @@ -969,801 +969,27 @@ done: int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf) { - size_t c_bufsize; - char *c_buf=NULL; /* Buffer to hold C string */ - int_f ret_value=0; /* Return value */ - - c_bufsize = (size_t)*bufsize+1; - /* - * Allocate buffer to hold name of an attribute - */ - if ((c_buf = HDmalloc(c_bufsize)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Aget_name function - */ - - if ((ret_value = (int_f)H5Aget_name((hid_t)*attr_id, c_bufsize, c_buf)) < 0) - HGOTO_DONE(FAIL); - - /* - * Convert C name to FORTRAN and place it in the given buffer - */ - HD5packFstring(c_buf, _fcdtocp(buf), c_bufsize-1); - -done: - if(c_buf) HDfree(c_buf); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aget_storage_size_c - * Purpose: Call H5Aget_storage_size - * Inputs: attr_id - identifier of an attribute - * Outputs: size - attributes storage requirements - * Returns: 0 on success, -1 on failure - * Programmer: M. S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ - -int_f -nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size) -{ - int_f ret_value=0; /* Return value */ - - if ((*size = (hsize_t_f)H5Aget_storage_size((hid_t)*attr_id)) < 0) - HGOTO_DONE(FAIL); - -done: - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aget_create_plist_c - * Purpose: Call H5Aget_create_plist - * Inputs: attr_id - identifier of an attribute - * Outputs: creation_prop_id - Identifier for the attribute’s creation property - * Returns: 0 on success, -1 on failure - * Programmer: M. S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ - -int_f -nh5aget_create_plist_c ( hid_t_f *attr_id, hid_t_f *creation_prop_id) -{ - int_f ret_value=0; /* Return value */ - - if ((*creation_prop_id = (hid_t_f)H5Aget_create_plist((hid_t)*attr_id)) < 0) - HGOTO_DONE(FAIL); - -done: - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5arename_by_name_c - * Purpose: Calls H5Arename_by_name - * Inputs: loc_id - Object identifier - * obj_name - Name of object, relative to location, - * whose attribute is to be renamed - * obj_name_len - Object name length - * old_attr_name - Prior attribute name - * old_attr_name_len - Prior attribute name length - * new_attr_name - New attribute name - * new_attr_name_len - New attribute name length - * lapl_id - Link access property list identifier - * Outputs: N/A - * Returns: 0 on success, -1 on failure - * Programmer: M. S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ - -int_f -nh5arename_by_name_c( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd old_attr_name, size_t_f *old_attr_namelen, - _fcd new_attr_name, size_t_f *new_attr_namelen, - hid_t_f *lapl_id ) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - char *c_old_attr_name = NULL; /* Buffer to hold C string */ - char *c_new_attr_name = NULL; /* Buffer to hold C string */ + char *c_buf=NULL; /* Buffer to hold C string */ int_f ret_value=0; /* Return value */ - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_old_attr_name = HD5f2cstring(old_attr_name, (size_t)*old_attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_new_attr_name = HD5f2cstring(new_attr_name, (size_t)*new_attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - if(H5Arename_by_name((hid_t)*loc_id,c_obj_name,c_old_attr_name,c_new_attr_name,(hid_t)*lapl_id) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_obj_name) - HDfree(c_obj_name); - if(c_old_attr_name) - HDfree(c_old_attr_name); - if(c_new_attr_name) - HDfree(c_new_attr_name); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aopen_c - * Purpose: Call H5Aopen to open an attribute - * Inputs: obj_id - Identifer for object to which attribute is attached - * attr_name - Attribute access property list - * attr_namelen - size of attr_name - * aapl_id - Link access property list - * Outputs: attr_id - dataset identifier - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: - *---------------------------------------------------------------------------*/ -int_f -nh5aopen_c (hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *aapl_id, hid_t_f *attr_id) -{ - char *c_attr_name = NULL; /* Buffer to hold C string */ - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - /* - * Call H5Aopen function. - */ - - if((*attr_id = (hid_t_f)H5Aopen((hid_t)*obj_id, c_attr_name, (hid_t)*aapl_id)) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_attr_name) - HDfree(c_attr_name); - return ret_value; -} -/*---------------------------------------------------------------------------- - * Name: h5adelete_by_name_c - * Purpose: Call h5adelete_by_name to remove an attribute from a specified location - * Inputs: loc_id - identifer for object to which attribute is attached - * obj_name - object identifier - * obj_namelen - name length - * attr_name - name of the attribute - * attr_namelen - name length - * lapl_id - link access property list - * - * Outputs: N/A - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5adelete_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - char *c_attr_name = NULL; /* Buffer to hold C string */ - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Adelete_by_name function. - */ - if(H5Adelete_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, (hid_t)*lapl_id) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_attr_name) - HDfree(c_attr_name); - if(c_obj_name) - HDfree(c_obj_name); - return ret_value; -} -/*---------------------------------------------------------------------------- - * Name: h5adelete_by_idx_c - * Purpose: Call h5adelete_by_idx - * Inputs: loc_id - Location or object identifier; may be dataset or group - * obj_name - object identifier - * obj_namelen - name length - * attr_name - name of the attribute - * attr_namelen - name length - * lapl_id - link access property list - * - * Outputs: N/A - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5adelete_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, size_t_f *n, hid_t_f *lapl_id) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - H5_index_t c_idx_type; - H5_iter_order_t c_order; - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - - c_idx_type = (H5_index_t)*idx_type; - c_order = (H5_iter_order_t)*order; - - /* - * Call H5Adelete_by_name function. - */ - - if(H5Adelete_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, (hid_t)*lapl_id) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_obj_name) - HDfree(c_obj_name); - return ret_value; -} -/*---------------------------------------------------------------------------- - * Name: h5aget_name_by_idx_c - * Purpose: Call h5aget_name_by_idx - * Inputs: - * - * loc_id - Identifer for object to which attribute is attached - * obj_name - Name of object, relative to location, - * from which attribute is to be removed *TEST* check NULL - * idx_type - Type of index; Possible values are: - * H5_INDEX_UNKNOWN - Unknown index type - * H5_INDEX_NAME - Index on names - * H5_INDEX_CRT_ORDER - Index on creation order - * H5_INDEX_N - Number of indices defined - * - * order - Order in which to iterate over index; Possible values are: - * H5_ITER_UNKNOWN - Unknown order - * H5_ITER_INC - Increasing order - * H5_ITER_DEC - Decreasing order - * H5_ITER_NATIVE - No particular order, whatever is fastest - * H5_ITER_N - Number of iteration orders - * - * n - Attribute’s position in index - * attr_id - Attribute identifier - * size - Buffer size ! *TEST* check for 0 value *CHECK* should this return the correct value - * - * lapl_id - Link access property list - * hdferr - Error code: - * Returns attribute name size, -1 if fail - * - * Outputs: name - Attribute name - * - * Returns: Size of buffer on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5aget_name_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, size_t_f *n, _fcd name, - size_t_f *size, hid_t_f *lapl_id) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - H5_index_t c_idx_type; - H5_iter_order_t c_order; - int_f ret_value = -1; /* Return value */ - ssize_t c_size; - size_t c_buf_size; - char *c_buf =NULL; /* - * Convert FORTRAN name to C name + * Allocate buffer to hold name of an attribute */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - - c_idx_type = (H5_index_t)*idx_type; - c_order = (H5_iter_order_t)*order; - - /* - * Allocate buffer to hold name of an attribute - */ - c_buf_size = (size_t)*size + 1; - c_buf = (char *)HDmalloc(c_buf_size); - if (c_buf == NULL) return ret_value; + if ((c_buf = HDmalloc((size_t)*bufsize +1)) == NULL) + HGOTO_DONE(FAIL); /* - * Call H5Aget_name_by_idx function. + * Call H5Aget_name function */ - c_size = H5Aget_name_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, c_buf, c_buf_size,(hid_t)*lapl_id); - -/* printf( "In C routine, The attr name is %s %i \n ", c_buf, c_buf_size ); */ -/* printf( "In C routine, The c_size is %i \n ", c_size ); */ - - if (c_size < 0) goto done; + if ((ret_value = (int_f)H5Aget_name((hid_t)*attr_id, (size_t)*bufsize, c_buf)) < 0) + HGOTO_DONE(FAIL); /* * Convert C name to FORTRAN and place it in the given buffer */ - HD5packFstring(c_buf, _fcdtocp(name), c_buf_size); - *size = (size_t_f)c_size; - ret_value = 0; - -done: - if(c_obj_name) - HDfree(c_obj_name); - HDfree(c_buf); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aopen_by_idx_c - * Purpose: Call H5Aopen_by_idx - * Inputs: loc_id - Object identifier - * obj_name - Name of object to which attribute is attached - * obj_namelen - name length - * idx_type - Type of index; Possible values are: - * H5_INDEX_UNKNOWN - Unknown index type - * H5_INDEX_NAME - Index on names - * H5_INDEX_CRT_ORDER - Index on creation order - * H5_INDEX_N - Number of indices defined - * - * order - Order in which to iterate over index; Possible values are: - * H5_ITER_UNKNOWN - Unknown order - * H5_ITER_INC - Increasing order - * H5_ITER_DEC - Decreasing order - * H5_ITER_NATIVE - No particular order, whatever is fastest - * H5_ITER_N - Number of iteration orders - * - * n - Attribute’s position in index - * aapl_id - Attribute access property list - * lapl_id - Link access property list - * Outputs: attr_id - attribute identifer - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5aopen_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, size_t_f *n, hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id ) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - H5_index_t c_idx_type; - H5_iter_order_t c_order; - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - - c_idx_type = (H5_index_t)*idx_type; - c_order = (H5_iter_order_t)*order; - - /* - * Call H5Aopen_by_idx function. - */ - if((*attr_id = (hid_t_f)H5Aopen_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, (hid_t)*aapl_id, (hid_t)*lapl_id)) < 0) - HGOTO_DONE(FAIL); -done: - if(c_obj_name) - HDfree(c_obj_name); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aget_info_c - * Purpose: Call H5Aget_info - * Inputs: loc_id - Object identifier - * Outputs: - * corder_valid - Indicates whether the the creation order data is valid for this attribute - * corder - Is a positive integer containing the creation order of the attribute - * cset - Indicates the character set used for the attribute’s name - * data_size - indicates the size, in the number of characters, of the attribute - * - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder, - int_f *cset, hsize_t_f *data_size ) -{ - - int_f ret_value = 0; /* Return value */ - H5A_info_t ainfo; - - - /* - * Call H5Aget_info function. - */ - if(H5Aget_info((hid_t)*loc_id,&ainfo) < 0) - HGOTO_DONE(FAIL); - - /* Unpack the structure */ - - *corder_valid = 0; - if(ainfo.corder_valid > 0) *corder_valid = 1; - - *corder = (int_f)ainfo.corder; - *cset = (int_f)ainfo.cset; - *data_size = (hsize_t)ainfo.data_size; - -done: - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aget_info_by_idx_c - * Purpose: Call H5Aget_info_by_idx - * Inputs: loc_id - Object identifier - * obj_name - Name of object to which attribute is attached - * obj_namelen - name length - * idx_type - Type of index; Possible values are: - * H5_INDEX_UNKNOWN - Unknown index type - * H5_INDEX_NAME - Index on names - * H5_INDEX_CRT_ORDER - Index on creation order - * H5_INDEX_N - Number of indices defined - * - * order - Order in which to iterate over index; Possible values are: - * H5_ITER_UNKNOWN - Unknown order - * H5_ITER_INC - Increasing order - * H5_ITER_DEC - Decreasing order - * H5_ITER_NATIVE - No particular order, whatever is fastest - * H5_ITER_N - Number of iteration orders - * - * n - Attribute’s position in index - * lapl_id - Link access property list - * Outputs: - * corder_valid - Indicates whether the the creation order data is valid for this attribute - * corder - Is a positive integer containing the creation order of the attribute - * cset - Indicates the character set used for the attribute’s name - * data_size - indicates the size, in the number of characters, of the attribute - * - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, size_t_f *n, hid_t_f *lapl_id, - int_f *corder_valid, int_f *corder, - int_f *cset, hsize_t_f *data_size ) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - H5_index_t c_idx_type; - H5_iter_order_t c_order; - int_f ret_value = 0; /* Return value */ - H5A_info_t ainfo; - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - - c_idx_type = (H5_index_t)*idx_type; - c_order = (H5_iter_order_t)*order; - /* - * Call H5Ainfo_by_idx function. - */ - if(H5Aget_info_by_idx((hid_t)*loc_id, c_obj_name, c_idx_type, c_order, (hsize_t)*n, - &ainfo, (hid_t)*lapl_id) < 0) - HGOTO_DONE(FAIL); - - /* Unpack the structure */ - - *corder_valid = 0; - if(ainfo.corder_valid > 0) *corder_valid = 1; - - *corder = (int_f)ainfo.corder; - *cset = (int_f)ainfo.cset; - *data_size = (hsize_t)ainfo.data_size; - -done: - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aget_info_by_name_c - * Purpose: Call H5Aget_info_by_name - * Inputs: loc_id - Object identifier - * obj_name - Name of object to which attribute is attached - * obj_namelen - name length - * attr_name - Attribute name - * attr_namelen - attribute name length - * lapl_id - Link access property list - * Outputs: - * corder_valid - Indicates whether the the creation order data is valid for this attribute - * corder - Is a positive integer containing the creation order of the attribute - * cset - Indicates the character set used for the attribute’s name - * data_size - indicates the size, in the number of characters, of the attribute - * - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id, - int_f *corder_valid, int_f *corder, - int_f *cset, hsize_t_f *data_size ) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - char *c_attr_name = NULL; /* Buffer to hold C string */ - int_f ret_value = 0; /* Return value */ - H5A_info_t ainfo; - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Ainfo_by_name function. - */ - if(H5Aget_info_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, - &ainfo, (hid_t)*lapl_id) < 0) - HGOTO_DONE(FAIL); - - /* Unpack the structure */ - - *corder_valid = 0; - if(ainfo.corder_valid > 0) *corder_valid = 1; - - *corder = (int_f)ainfo.corder; - *cset = (int_f)ainfo.cset; - *data_size = (hsize_t)ainfo.data_size; - -done: - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5acreate_by_name_c - * Purpose: Call h5acreate_by_name - - * Inputs: - * loc_id - Object identifier - * obj_name - Name of object to which attribute is attached - * obj_namelen - name length - * attr_name - Attribute name - * attr_namelen - attribute name length - * type_id - Attribute datatype identifier - * space_id - Attribute dataspace identifier - * acpl_id - Attribute creation property list identifier (Currently not used.) - * aapl_id - Attribute access property list identifier (Currently not used.) - * lapl_id - Link access property list - * - * Outputs: - * attr - an attribute identifier - * - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * February, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ -int_f -nh5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd attr_name, size_t_f *attr_namelen, hid_t_f *type_id, - hid_t_f *space_id, hid_t_f *acpl_id, hid_t_f *aapl_id, - hid_t_f *lapl_id, hid_t_f *attr_id ) -{ - char *c_obj_name = NULL; /* Buffer to hold C string */ - char *c_attr_name = NULL; /* Buffer to hold C string */ - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Acreate_by_name function. - */ - if((*attr_id = (hid_t_f)H5Acreate_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, - (hid_t)*type_id, (hid_t)*space_id,(hid_t)*acpl_id,(hid_t)*aapl_id,(hid_t)*lapl_id )) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_obj_name) - HDfree(c_obj_name); - if(c_attr_name) - HDfree(c_attr_name); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aexists_c - * Purpose: CAll h5aexists - * Inputs: - * obj_id - Object identifier - * attr_name - Attribute name - * Outputs: - * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * February, 2008 - * Modifications: - *---------------------------------------------------------------------------*/ -int_f -nh5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists) -{ - char *c_name = NULL; /* Buffer to hold C string */ - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_name = HD5f2cstring(name, (size_t)*namelen)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Aexists function. - */ - if((*attr_exists = (hid_t_f)H5Aexists((hid_t)*obj_id, c_name)) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_name) - HDfree(c_name); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aexists_by_name_c - * Purpose: CAll H5Aexists_by_name - * Inputs: - * loc_id - Location identifier - * obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot) - * attr_name - Attribute name - * lapl_id - Link access property list identifier - * Outputs: - * attr_exists_c - returns a positive value, for TRUE, or 0 (zero), for FALSE. - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * February, 2008 - * Modifications: - *---------------------------------------------------------------------------*/ -int_f -nh5aexists_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, - hid_t_f *lapl_id, hid_t_f *attr_exists) -{ - char *c_obj_name = NULL; /* Buffer to hold object name C string */ - char *c_attr_name = NULL; /* Buffer to hold attribute name C string */ - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Aexists_by_name function. - */ - if((*attr_exists = (hid_t_f)H5Aexists_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, (hid_t)*lapl_id)) < 0) - HGOTO_DONE(FAIL); - -done: - if(c_obj_name) - HDfree(c_obj_name); - if(c_attr_name) - HDfree(c_attr_name); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5aopen_by_name_c - * Purpose: Call H5Aopen_by_name - * Inputs: - * loc_id - Location identifier - * obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot) - * attr_name - Attribute name - * aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.) - * lapl_id - Link access property list identifier - * Outputs: - * attr_id - attribute identifier - * Returns: 0 on success, -1 on failure - * Programmer: M.S. Breitenfeld - * February, 2008 - * Modifications: - *---------------------------------------------------------------------------*/ -int_f -nh5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, - hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id) -{ - char *c_obj_name = NULL; /* Buffer to hold object name C string */ - char *c_attr_name = NULL; /* Buffer to hold attribute name C string */ - int_f ret_value = 0; /* Return value */ - - /* - * Convert FORTRAN name to C name - */ - if((c_obj_name = HD5f2cstring(obj_name, (size_t)*obj_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_attr_name = HD5f2cstring(attr_name, (size_t)*attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - /* - * Call H5Aopen function. - */ - if((*attr_id = (hid_t_f)H5Aopen_by_name((hid_t)*loc_id, c_obj_name, c_attr_name, (hid_t)*aapl_id, (hid_t)*lapl_id)) < 0) - HGOTO_DONE(FAIL); - - done: - if(c_obj_name) - HDfree(c_obj_name); - if(c_attr_name) - HDfree(c_attr_name); - return ret_value; -} - -/*---------------------------------------------------------------------------- - * Name: h5arename_c - * Purpose: Calls H5Arename - * Inputs: loc_id - Object identifier - * old_attr_name - Prior attribute name - * old_attr_name_len - Prior attribute name length - * new_attr_name - New attribute name - * new_attr_name_len - New attribute name length - * Outputs: N/A - * Returns: 0 on success, -1 on failure - * Programmer: M. S. Breitenfeld - * January, 2008 - * Modifications: N/A - *---------------------------------------------------------------------------*/ - -int_f -nh5arename_c( hid_t_f *loc_id, - _fcd old_attr_name, size_t_f *old_attr_namelen, - _fcd new_attr_name, size_t_f *new_attr_namelen) -{ - char *c_old_attr_name = NULL; /* Buffer to hold C string */ - char *c_new_attr_name = NULL; /* Buffer to hold C string */ - int_f ret_value=0; /* Return value */ - /* - * Convert FORTRAN name to C name - */ - if((c_old_attr_name = HD5f2cstring(old_attr_name, (size_t)*old_attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - if((c_new_attr_name = HD5f2cstring(new_attr_name, (size_t)*new_attr_namelen)) == NULL) - HGOTO_DONE(FAIL); - - if(H5Arename((hid_t)*loc_id,c_old_attr_name,c_new_attr_name) < 0) - HGOTO_DONE(FAIL); + HD5packFstring(c_buf, _fcdtocp(buf), (size_t)*bufsize); done: - if(c_old_attr_name) - HDfree(c_old_attr_name); - if(c_new_attr_name) - HDfree(c_new_attr_name); - return ret_value; + if(c_buf) HDfree(c_buf); + return ret_value; } |