summaryrefslogtreecommitdiffstats
path: root/generic/tclLink.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2008-04-27 22:21:26 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2008-04-27 22:21:26 (GMT)
commit26c09b8c918f8223a38fc764aa9a39fb8ce45991 (patch)
tree4e7b1367d8eb030241db8325caa541ce387b7313 /generic/tclLink.c
parent60e86b2a4795ded3f41e7361470071827477f5b0 (diff)
downloadtcl-26c09b8c918f8223a38fc764aa9a39fb8ce45991.zip
tcl-26c09b8c918f8223a38fc764aa9a39fb8ce45991.tar.gz
tcl-26c09b8c918f8223a38fc764aa9a39fb8ce45991.tar.bz2
Get rid of pre-C89-isms (esp. CONST vs const).
Diffstat (limited to 'generic/tclLink.c')
-rw-r--r--generic/tclLink.c37
1 files changed, 17 insertions, 20 deletions
diff --git a/generic/tclLink.c b/generic/tclLink.c
index 77dc509..d4a7f38 100644
--- a/generic/tclLink.c
+++ b/generic/tclLink.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclLink.c,v 1.24 2007/12/13 15:23:18 dgp Exp $
+ * RCS: @(#) $Id: tclLink.c,v 1.25 2008/04/27 22:21:30 dkf Exp $
*/
#include "tclInt.h"
@@ -67,7 +67,7 @@ typedef struct Link {
*/
static char * LinkTraceProc(ClientData clientData,Tcl_Interp *interp,
- CONST char *name1, CONST char *name2, int flags);
+ const char *name1, const char *name2, int flags);
static Tcl_Obj * ObjValue(Link *linkPtr);
/*
@@ -104,7 +104,7 @@ static Tcl_Obj * ObjValue(Link *linkPtr);
int
Tcl_LinkVar(
Tcl_Interp *interp, /* Interpreter in which varName exists. */
- CONST char *varName, /* Name of a global variable in interp. */
+ const char *varName, /* Name of a global variable in interp. */
char *addr, /* Address of a C variable to be linked to
* varName. */
int type) /* Type of C variable: TCL_LINK_INT, etc. Also
@@ -133,8 +133,7 @@ Tcl_LinkVar(
return TCL_ERROR;
}
code = Tcl_TraceVar(interp, varName, TCL_GLOBAL_ONLY|TCL_TRACE_READS
- |TCL_TRACE_WRITES|TCL_TRACE_UNSETS, LinkTraceProc,
- (ClientData) linkPtr);
+ |TCL_TRACE_WRITES|TCL_TRACE_UNSETS, LinkTraceProc, linkPtr);
if (code != TCL_OK) {
Tcl_DecrRefCount(linkPtr->varName);
ckfree((char *) linkPtr);
@@ -163,18 +162,17 @@ Tcl_LinkVar(
void
Tcl_UnlinkVar(
Tcl_Interp *interp, /* Interpreter containing variable to unlink */
- CONST char *varName) /* Global variable in interp to unlink. */
+ const char *varName) /* Global variable in interp to unlink. */
{
- Link *linkPtr;
+ Link *linkPtr = (Link *) Tcl_VarTraceInfo(interp, varName,
+ TCL_GLOBAL_ONLY, LinkTraceProc, NULL);
- linkPtr = (Link *) Tcl_VarTraceInfo(interp, varName, TCL_GLOBAL_ONLY,
- LinkTraceProc, (ClientData) NULL);
if (linkPtr == NULL) {
return;
}
Tcl_UntraceVar(interp, varName,
TCL_GLOBAL_ONLY|TCL_TRACE_READS|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
- LinkTraceProc, (ClientData) linkPtr);
+ LinkTraceProc, linkPtr);
Tcl_DecrRefCount(linkPtr->varName);
ckfree((char *) linkPtr);
}
@@ -201,13 +199,12 @@ Tcl_UnlinkVar(
void
Tcl_UpdateLinkedVar(
Tcl_Interp *interp, /* Interpreter containing variable. */
- CONST char *varName) /* Name of global variable that is linked. */
+ const char *varName) /* Name of global variable that is linked. */
{
- Link *linkPtr;
+ Link *linkPtr = (Link *) Tcl_VarTraceInfo(interp, varName,
+ TCL_GLOBAL_ONLY, LinkTraceProc, NULL);
int savedFlag;
- linkPtr = (Link *) Tcl_VarTraceInfo(interp, varName, TCL_GLOBAL_ONLY,
- LinkTraceProc, (ClientData) NULL);
if (linkPtr == NULL) {
return;
}
@@ -219,7 +216,7 @@ Tcl_UpdateLinkedVar(
* Callback may have unlinked the variable. [Bug 1740631]
*/
linkPtr = (Link *) Tcl_VarTraceInfo(interp, varName, TCL_GLOBAL_ONLY,
- LinkTraceProc, (ClientData) NULL);
+ LinkTraceProc, NULL);
if (linkPtr != NULL) {
linkPtr->flags = (linkPtr->flags & ~LINK_BEING_UPDATED) | savedFlag;
}
@@ -250,13 +247,13 @@ static char *
LinkTraceProc(
ClientData clientData, /* Contains information about the link. */
Tcl_Interp *interp, /* Interpreter containing Tcl variable. */
- CONST char *name1, /* First part of variable name. */
- CONST char *name2, /* Second part of variable name. */
+ const char *name1, /* First part of variable name. */
+ const char *name2, /* Second part of variable name. */
int flags) /* Miscellaneous additional information. */
{
- Link *linkPtr = (Link *) clientData;
+ Link *linkPtr = clientData;
int changed, valueLength;
- CONST char *value;
+ const char *value;
char **pp;
Tcl_Obj *valueObj;
int valueInt;
@@ -277,7 +274,7 @@ LinkTraceProc(
TCL_GLOBAL_ONLY);
Tcl_TraceVar(interp, Tcl_GetString(linkPtr->varName),
TCL_GLOBAL_ONLY|TCL_TRACE_READS|TCL_TRACE_WRITES
- |TCL_TRACE_UNSETS, LinkTraceProc, (ClientData) linkPtr);
+ |TCL_TRACE_UNSETS, LinkTraceProc, linkPtr);
}
return NULL;
}
buffer to store member's name * obj_namelen - length of the buffer * obj_type - type of the object * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, August 5, 1999 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, _fcd obj_name, int_f *obj_namelen, int_f *obj_type) { H5O_info_t oinfo; hid_t c_loc_id = (hid_t)*loc_id; char *c_name = NULL; size_t c_obj_namelen; char *c_obj_name = NULL; hsize_t c_idx = *idx; hid_t gid = (-1); /* Temporary group ID */ int ret_value = -1; /* * Convert FORTRAN name to C name */ if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) goto DONE; /* * Allocate buffer to hold name of the object */ c_obj_namelen = *obj_namelen; if(c_obj_namelen) if(NULL == (c_obj_name = (char *)HDmalloc(c_obj_namelen + 1))) goto DONE; /* Get a temporary group ID for the group to query */ if((gid = H5Gopen2(c_loc_id, c_name, H5P_DEFAULT)) < 0) goto DONE; /* Query the object's information */ if(H5Lget_name_by_idx(gid, ".", H5_INDEX_NAME, H5_ITER_INC, c_idx, c_obj_name, c_obj_namelen, H5P_DEFAULT) < 0) goto DONE; if(H5Oget_info_by_idx(gid, ".", H5_INDEX_NAME, H5_ITER_INC, c_idx, &oinfo, H5P_DEFAULT) < 0) goto DONE; /* XXX: Switch from using H5Gget_objtype_by_idx() means that this routine won't * work on non-hard links - QAK */ *obj_type = oinfo.type; /* * Convert C name to FORTRAN and place it in the given buffer */ HD5packFstring(c_obj_name, _fcdtocp(obj_name), c_obj_namelen); ret_value = 0; DONE: /* Close the temporary group, if it was opened */ if(gid > 0) H5Gclose(gid); if(c_obj_name) HDfree(c_obj_name); if(c_name) HDfree(c_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gn_members_c * Purpose: Call H5Gget_info_by_name to find number of objects in the group * Inputs: loc_id - file or group identifier * name - name of the group * namelen - name length * Outputs: nmemebers - number of members * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, August 5, 1999 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5gn_members_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers) { char *c_name = NULL; H5G_info_t ginfo; int ret_value = -1; /* * Convert FORTRAN name to C name */ if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) goto DONE; /* Call H5Gget_info_by_name() for the number of objects in the group */ if(H5Gget_info_by_name((hid_t)*loc_id, c_name, &ginfo, H5P_DEFAULT) < 0) goto DONE; *nmembers = (int_f)ginfo.nlinks; ret_value = 0; DONE: if(c_name) HDfree(c_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gclose_c * Purpose: Call H5Gclose to close the group * Inputs: grp_id - identifier of the group to be closed * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, August 5, 1999 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5gclose_c(hid_t_f *grp_id) { int ret_value = 0; if(H5Gclose((hid_t)*grp_id) < 0) ret_value = -1; return ret_value; } /*---------------------------------------------------------------------------- * Name: h5glink_c * Purpose: Call H5Glink to link the specified type * Inputs: loc_id - identifier of file or group * link_type - link type * current_name - name of the existing object for hard link, * anything for the soft link * current_namelen - current name lenghth * new_name - new name for the object * new_namelen - new_name lenghth * Returns: 0 on success, -1 on failure * Programmer: Mingshi Chen * Friday, August 6, 1999 * Modifications: Elena Pourmal *---------------------------------------------------------------------------*/ int_f nh5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name, int_f *current_namelen, _fcd new_name, int_f *new_namelen) { char *c_current_name = NULL, *c_new_name = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_current_name = (char *)HD5f2cstring(current_name, (size_t)*current_namelen))) goto DONE; if(NULL == (c_new_name = (char *)HD5f2cstring(new_name, (size_t)*new_namelen))) goto DONE; /* * Call appropriate link creation function */ switch((H5L_type_t)*link_type) { case H5L_TYPE_HARD: if(H5Lcreate_hard((hid_t)*loc_id, c_current_name, H5L_SAME_LOC, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; break; case H5L_TYPE_SOFT: if(H5Lcreate_soft(c_current_name, (hid_t)*loc_id, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; break; default: /* Unknown/unhandled link type */ goto DONE; } /* end switch */ ret_value = 0; DONE: if(c_current_name) HDfree(c_current_name); if(c_new_name) HDfree(c_new_name); return ret_value ; } /*---------------------------------------------------------------------------- * Name: h5glink2_c * Purpose: Call H5Glink2 to link the specified type * Inputs: cur_loc_id - identifier of file or group * cur_name - name of the existing object for hard link releative * to cur_loc_id location, * anything for the soft link * current_namelen - current name lenghth * link_type - link type * new_loc_id - location identifier * new_name - new name for the object releative to the new_loc_id * location * new_namelen - new_name lenghth * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, September 25, 2002 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5glink2_c(hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen, int_f *link_type, hid_t_f *new_loc_id, _fcd new_name, int_f *new_namelen) { char *c_cur_name = NULL, *c_new_name = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_cur_name = (char *)HD5f2cstring(cur_name, (size_t)*cur_namelen))) goto DONE; if(NULL == (c_new_name = (char *)HD5f2cstring(new_name, (size_t)*new_namelen))) goto DONE; /* * Call appropriate link creation function */ switch((H5L_type_t)*link_type) { case H5L_TYPE_HARD: if(H5Lcreate_hard((hid_t)*cur_loc_id, c_cur_name, (hid_t)*new_loc_id, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; break; case H5L_TYPE_SOFT: if(H5Lcreate_soft(c_cur_name, (hid_t)*new_loc_id, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; break; default: /* Unknown/unhandled link type */ goto DONE; } /* end switch */ ret_value = 0; DONE: if(c_cur_name) HDfree(c_cur_name); if(c_new_name) HDfree(c_new_name); return ret_value ; } /*---------------------------------------------------------------------------- * Name: h5gunlink_c * Purpose: Call H5Gunlink to remove the specified name * Inputs: loc_id - identifier of file or group * name - name of the object to unlink * Returns: 0 on success, -1 on failure * Programmer: Mingshi Chen * Friday, August 6, 1999 * Modifications: Elena Pourmal *---------------------------------------------------------------------------*/ int_f nh5gunlink_c(hid_t_f *loc_id, _fcd name, int_f *namelen) { char *c_name = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) goto DONE; /* * Call H5Gunlink function */ if(H5Ldelete((hid_t)*loc_id, c_name, H5P_DEFAULT) < 0) goto DONE; ret_value = 0; DONE: if(c_name) HDfree(c_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gmove_c * Purpose: Call H5Gmove to rename an object within an HDF5 file * Inputs: loc_id - identifier of file or group * src_name - name of the original object * src_namelen - original name lenghth * dst_name - new name for the object * dst_namelen - new name lenghth * Returns: 0 on success, -1 on failure * Programmer: Mingshi Chen * Friday, August 6, 1999 * Modifications: Elena Pourmal *---------------------------------------------------------------------------*/ int_f nh5gmove_c(hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f*dst_namelen) { char *c_src_name = NULL, *c_dst_name = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_src_name = (char *)HD5f2cstring(src_name, (size_t)*src_namelen))) goto DONE; if(NULL == (c_dst_name = (char *)HD5f2cstring(dst_name, (size_t)*dst_namelen))) goto DONE; /* * Call H5Gmove function */ if(H5Lmove((hid_t)*loc_id, c_src_name, H5L_SAME_LOC, c_dst_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; ret_value = 0; DONE: if(c_src_name) HDfree(c_src_name); if(c_dst_name) HDfree(c_dst_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gmove2_c * Purpose: Call H5Gmove2 to rename an object within an HDF5 file * Inputs: src_loc_id - identifier of file or group * src_name - name of the original object relative to src_loc_id * src_namelen - original name lenghth * dst_loc_id - new location identifier * dst_name - new name for the object relative to dst_loc_id * dst_namelen - new name lenghth * Returns: 0 on success, -1 on failure * Programmer: Elena Pourmal * Wednesday, September 25, 2002 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5gmove2_c(hid_t_f *src_loc_id, _fcd src_name, int_f *src_namelen, hid_t_f *dst_loc_id, _fcd dst_name, int_f*dst_namelen) { char *c_src_name = NULL, *c_dst_name = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_src_name = (char *)HD5f2cstring(src_name, (size_t)*src_namelen))) goto DONE; if(NULL == (c_dst_name = (char *)HD5f2cstring(dst_name, (size_t)*dst_namelen))) goto DONE; /* * Call H5Gmove2 function */ if(H5Lmove((hid_t)*src_loc_id, c_src_name, (hid_t)*dst_loc_id, c_dst_name, H5P_DEFAULT, H5P_DEFAULT) < 0) goto DONE; ret_value = 0; DONE: if(c_src_name) HDfree(c_src_name); if(c_dst_name) HDfree(c_dst_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gget_linkval_c * Purpose: Call H5Gget_linkval to return the name of object * Inputs: loc_id - identifier of file or group * name - name of the object that symbolic link points to * namelen - the name lenghth * size - lenghth of retrurned value * Outputs: value - name to be returned * Returns: 0 on success, -1 on failure * Programmer: Mingshi Chen * Friday, August 6, 1999 * Modifications: Elena Pourmal *---------------------------------------------------------------------------*/ int_f nh5gget_linkval_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value) { char *c_name = NULL; char *c_value = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) goto DONE; /* * Allocate buffer to hold name of the value */ if(*size) c_value = (char *)HDmalloc((size_t)*size); if(c_value == NULL) { HDfree(c_name); return ret_value; } /* * Call H5Lget_val function */ if(H5Lget_val((hid_t)*loc_id, c_name, c_value, (size_t)*size, H5P_DEFAULT) < 0) goto DONE; /* * Convert C name to FORTRAN and place it in the given buffer */ HD5packFstring(c_value, _fcdtocp(value), (size_t)*size); ret_value = 0; DONE: if(c_value) HDfree(c_value); if(c_name) HDfree(c_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gset_comment_c * Purpose: Call H5Oset_comment_by_name to set comments for the specified object * Inputs: loc_id - identifier of file or group * name - name of object whose comment is to be set or reset * namelen - the name lenghth * comment - the new comment * commentlen - new comment lenghth * Returns: 0 on success, -1 on failure * Programmer: Mingshi Chen * Friday, August 6, 1999 * Modifications: Elena Pourmal *---------------------------------------------------------------------------*/ int_f nh5gset_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen) { char *c_name = NULL, *c_comment = NULL; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) goto DONE; if(NULL == (c_comment = (char *)HD5f2cstring(comment, (size_t)*commentlen))) goto DONE; /* * Call H5Oset_comment_by_name function */ if(H5Oset_comment_by_name((hid_t)*loc_id, c_name, c_comment, H5P_DEFAULT) < 0) goto DONE; ret_value = 0; DONE: if(c_name) HDfree(c_name); if(c_comment) HDfree(c_comment); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gget_comment_c * Purpose: Call H5Oget_comment_by_name to retrieve comments for the specified object * Inputs: loc_id - identifier of file or group * name - name of object whose comment is to be set or reset * namelen - the name lenghth * bufsize - at most bufsize characters * comment - the new comment * Returns: 0 on success, -1 on failure * Programmer: Mingshi Chen * Friday, August 6, 1999 * Modifications: Elena Pourmal *---------------------------------------------------------------------------*/ int_f nh5gget_comment_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment) { char *c_name = NULL, *c_comment = NULL; size_t c_bufsize; int ret_value = -1; /* * Convert Fortran name to C name */ if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen))) goto DONE; /* * Allocate buffer to hold the comment */ c_bufsize = (size_t)*bufsize; if(c_bufsize) { if(NULL == (c_comment = (char *)HDmalloc(c_bufsize + 1))) goto DONE; } /* end if */ /* * Call H5Oget_comment_by_name function */ if(H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, c_bufsize, H5P_DEFAULT) < 0) goto DONE; /* * Convert C name to FORTRAN and place it in the given buffer */ HD5packFstring(c_comment, _fcdtocp(comment), c_bufsize); ret_value = 0; DONE: if(c_name) HDfree(c_name); if(c_comment) HDfree(c_comment); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gcreate_anon_c * Purpose: Call H5Gcreate_anon * Inputs: * loc_id - Location identifier * gcpl_id - Group creation property list identifier * gapl_id - Group access property list identifier * * Outputs: grp_id - group identifier * Returns: 0 on success, -1 on failure * Programmer: M.S. Breitenfeld * February 15, 2008 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5gcreate_anon_c(hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id) { int_f ret_value=0; /* Return value */ if ((*grp_id = (hid_t_f)H5Gcreate_anon((hid_t)*loc_id,(hid_t)*gcpl_id,(hid_t)*gapl_id)) < 0) HGOTO_DONE(FAIL); done: return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gget_create_plist_c * Purpose: Call H5Gget_create_plist * Inputs: * grp_id - group identifier * * Outputs: gcpl_id - Group creation property list identifier * Returns: 0 on success, -1 on failure * Programmer: M.S. Breitenfeld * February 15, 2008 * Modifications: *---------------------------------------------------------------------------*/ int_f nh5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ) { int_f ret_value=0; /* Return value */ if ((*gcpl_id = (hid_t_f)H5Gget_create_plist((hid_t)*grp_id)) < 0) HGOTO_DONE(FAIL); done: return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gget_info_c * Purpose: Call H5Gget_info * Inputs: group_id - Group identifier * Outputs: * storage_type - Type of storage for links in group: * H5G_STORAGE_TYPE_COMPACT: Compact storage * H5G_STORAGE_TYPE_DENSE: Indexed storage * H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure * * nlinks - Number of links in group * max_corder - Current maximum creation order value for group * mounted - Whether group has a file mounted on it (0 = false, 1 = true) * * Returns: 0 on success, -1 on failure * Programmer: M.S. Breitenfeld * February 15, 2008 * Modifications: * - Added 'mounted' paramater * M.S. Breitenfeld * July 16, 2008 *---------------------------------------------------------------------------*/ int_f nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted ) { int_f ret_value = 0; /* Return value */ H5G_info_t ginfo; /* * Call H5Gget_info function. */ if(H5Gget_info((hid_t)*group_id,&ginfo) < 0) HGOTO_DONE(FAIL); /* Unpack the structure */ *storage_type = (int_f)ginfo.storage_type; *nlinks = (int_f)ginfo.nlinks; *max_corder = (int_f)ginfo.max_corder; *mounted = 0; if(ginfo.mounted) *mounted = 1; done: return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gget_info_by_idx_c * Purpose: Call H5Gget_info_by_idx * Inputs: * loc_id - File or group identifier * group_name - Name of group containing group for which information is to be retrieved * group_namelen - name length * index_type - Index type * order - Order of the count in the index * n - Position in the index of the group for which information is retrieved * lapl_id - Link access property list * Outputs: * storage_type - Type of storage for links in group: * H5G_STORAGE_TYPE_COMPACT: Compact storage * H5G_STORAGE_TYPE_DENSE: Indexed storage * H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure * * nlinks - Number of links in group * max_corder - Current maximum creation order value for group * mounted - Whether group has a file mounted on it (0 = false, 1 = true) * * Returns: 0 on success, -1 on failure * Programmer: M.S. Breitenfeld * February 18, 2008 * Modifications: * - Added 'mounted' paramater * M.S. Breitenfeld * July 16, 2008 *---------------------------------------------------------------------------*/ int_f nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted ) { char *c_group_name = NULL; /* Buffer to hold group name C string */ int_f ret_value = 0; /* Return value */ H5G_info_t ginfo; /* * Convert FORTRAN name to C name */ if((c_group_name = HD5f2cstring(group_name, (size_t)*group_namelen)) == NULL) HGOTO_DONE(FAIL); /* * Call H5Gget_info_by_idx function. */ if(H5Gget_info_by_idx((hid_t)*loc_id,c_group_name, (H5_index_t)*index_type,(H5_iter_order_t)*order,(hsize_t)*n, &ginfo, (hid_t)*lapl_id) < 0) HGOTO_DONE(FAIL); /* Unpack the structure */ *storage_type = (int_f)ginfo.storage_type; *nlinks = (int_f)ginfo.nlinks; *max_corder = (int_f)ginfo.max_corder; *mounted = 0; if(ginfo.mounted) *mounted = 1; done: if(c_group_name) HDfree(c_group_name); return ret_value; } /*---------------------------------------------------------------------------- * Name: h5gget_info_by_name_c * Purpose: Call H5Gget_info_by_name * Inputs: * loc_id - File or group identifier * group_name - Name of group containing group for which information is to be retrieved * group_namelen - name length * lapl_id - Link access property list * Outputs: * storage_type - Type of storage for links in group: * H5G_STORAGE_TYPE_COMPACT: Compact storage * H5G_STORAGE_TYPE_DENSE: Indexed storage * H5G_STORAGE_TYPE_SYMBOL_TABLE: Symbol tables, the original HDF5 structure * * nlinks - Number of links in group * max_corder - Current maximum creation order value for group * mounted - Whether group has a file mounted on it (0 = false, 1 = true) * * Returns: 0 on success, -1 on failure * Programmer: M.S. Breitenfeld * February 18, 2008 * Modifications: * - Added 'mounted' paramater * M.S. Breitenfeld * July 16, 2008 *---------------------------------------------------------------------------*/ int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted) { char *c_group_name = NULL; /* Buffer to hold group name C string */ int_f ret_value = 0; /* Return value */ H5G_info_t ginfo; /* * Convert FORTRAN name to C name */ if((c_group_name = HD5f2cstring(group_name, (size_t)*group_namelen)) == NULL) HGOTO_DONE(FAIL); /* * Call H5Gget_info_by_name function. */ if(H5Gget_info_by_name((hid_t)*loc_id, c_group_name, &ginfo, (hid_t)*lapl_id) < 0) HGOTO_DONE(FAIL); /* Unpack the structure */ *storage_type = (int_f)ginfo.storage_type; *nlinks = (int_f)ginfo.nlinks; *max_corder = (int_f)ginfo.max_corder; *mounted = 0; if(ginfo.mounted) *mounted = 1; done: if(c_group_name) HDfree(c_group_name); return ret_value; }