summaryrefslogtreecommitdiffstats
path: root/tools/h5findshd.c
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2000-01-07 23:17:08 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2000-01-07 23:17:08 (GMT)
commitd5e1f8ff0355d2729bd0184c6ec9d776ddfd9ce9 (patch)
treec40bda32556dc07af63e09fa46c39bd18279d8cd /tools/h5findshd.c
parent74333f5ae8661ba1ae309fecabdf0155963aa5ea (diff)
downloadhdf5-d5e1f8ff0355d2729bd0184c6ec9d776ddfd9ce9.zip
hdf5-d5e1f8ff0355d2729bd0184c6ec9d776ddfd9ce9.tar.gz
hdf5-d5e1f8ff0355d2729bd0184c6ec9d776ddfd9ce9.tar.bz2
[svn-r1936] Removed h5findshd.c. Its routines have been moved to libh5tools.c.
Diffstat (limited to 'tools/h5findshd.c')
-rw-r--r--tools/h5findshd.c480
1 files changed, 0 insertions, 480 deletions
diff --git a/tools/h5findshd.c b/tools/h5findshd.c
deleted file mode 100644
index aceead9..0000000
--- a/tools/h5findshd.c
+++ /dev/null
@@ -1,480 +0,0 @@
-
-#include <hdf5.h>
-#include <H5private.h>
-#include <h5tools.h>
-
-
-
-typedef herr_t (*H5G_operator_t)(hid_t, const char*, void*);
-
-extern void init_prefix(char **temp, int length);
-extern void init_table(table_t **table);
-extern void free_table(table_t **table);
-extern void dump_table(char *name, table_t* table);
-extern herr_t find_objs(hid_t group, const char *name, void *op_data);
-extern int search_obj (table_t *temp, unsigned long *);
-extern int get_table_idx(table_t *table, unsigned long *);
-extern int get_tableflag(table_t*, int);
-extern int set_tableflag(table_t*, int);
-extern char* get_objectname(table_t*, int);
-
-
-/*-------------------------------------------------------------------------
- * Function: init_table
- *
- * Purpose: allocate and initialize tables for shared groups, datasets,
- * and committed types
- *
- * Return: void
- *
- * Programmer: Ruey-Hsia Li
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-void init_table (table_t** temp){
-
- int i;
- table_t *table = malloc(sizeof(table_t));
-
- table->size = 20;
- table->nobjs = 0;
-
- table->objs = (obj_t*) malloc(table->size*sizeof(obj_t));
-
-
- for (i = 0; i < table->size; i++) {
- table->objs[i].objno[0] = table->objs[i].objno[1] = 0;
- table->objs[i].displayed = 0;
- table->objs[i].recorded = 0;
- table->objs[i].objflag = 0;
- }
- *temp = table;
-
-}
-
-
-/*-------------------------------------------------------------------------
- * Function: init_prefix
- *
- * Purpose: allocate and initialize prefix
- *
- * Return: void
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-void init_prefix(char **prefix, int prefix_len){
- char *temp;
- temp = (char *) malloc(prefix_len * sizeof (char));
- *temp = '\0';
- *prefix = temp;
-}
-
-
-
-/*-------------------------------------------------------------------------
- * Function: free_table
- *
- * Purpose: free tables for shared groups, datasets,
- * and committed types
- *
- * Return: void
- *
- * Programmer: Paul Harten
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-void
-free_table (table_t **table){
-
- table_t *temp = *table;
- if (temp->objs != NULL) {
- HDfree(temp->objs);
- }
- *table = temp;
-}
-
-
-/*-------------------------------------------------------------------------
- * Function: search_obj
- *
- * Purpose: search the object specified by objno in the table
- *
- * Return: an integer, the location of the object
- * -1 if object is not found
- *
- *
- * Programmer: Ruey-Hsia Li
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-int
-search_obj (table_t *table, unsigned long *objno) {
-int i=0, found=0;
-
- while (i < table->nobjs && !found)
- if (table->objs[i].objno[0] == *(objno) &&
- table->objs[i].objno[1] == *(objno+1) ) found = 1;
- else i++;
-
- if (!found) return -1;
- else return i;
-
-}
-
-
-/*-------------------------------------------------------------------------
- * Function: add_obj
- *
- * Purpose: add a shared object to the table
- * realloc the table if necessary
- *
- * Return: void
- *
- * Programmer: Ruey-Hsia Li
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-void
-add_obj (table_t *table, unsigned long *objno, char *objname) {
-int i;
-
- if (table->nobjs == table->size) {
- table->size *= 2;
- table->objs = realloc (table->objs, table->size*sizeof(obj_t));
- for (i = table->nobjs; i < table->size; i++) {
- table->objs[i].objno[0] = table->objs[i].objno[1] = 0;
- table->objs[i].displayed = 0;
- table->objs[i].recorded = 0;
- table->objs[i].objflag = 0;
- }
- }
-
- i = table->nobjs++;
- table->objs[i].objno[0] = *objno;
- table->objs[i].objno[1] = *(objno+1);
- strcpy (table->objs[i].objname, objname);
-
-}
-/*-------------------------------------------------------------------------
- * Function: Find_objs
- *
- * Purpose: Find objects, committed types and store them in tables
- *
- * Return: Success: SUCCEED
- *
- * Failure: FAIL
- *
- * Programmer: Ruey-Hsia Li
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-herr_t find_objs(hid_t group, const char *name, void *op_data)
-{
- hid_t obj, type;
- H5G_stat_t statbuf;
- char *tmp;
- int i;
- find_objs_t *info = (find_objs_t*)op_data;
-
- if (info->threshold > 1) { /*will get an infinite loop if greater than 1*/
- return(FAIL);
- }
-
- H5Gget_objinfo(group, name, TRUE, &statbuf);
-
- tmp = (char *) malloc ((strlen(info->prefix)+strlen(name)+2) * sizeof(char));
-
- strcpy(tmp, info->prefix);
-
- switch (statbuf.type) {
-
- case H5G_GROUP:
- if ((obj=H5Gopen (group, name))>=0) {
-
- if (info->prefix_len < (int)(strlen(info->prefix) + strlen(name) + 2)) {
- info->prefix_len *= 2;
- info->prefix = realloc (info->prefix, info->prefix_len * sizeof(char));
- }
- strcat(strcat(info->prefix,"/"), name);
-
- if (statbuf.nlink > info->threshold) {
- if (search_obj (info->group_table, statbuf.objno) < 0) {
- add_obj (info->group_table, statbuf.objno, info->prefix);
- H5Giterate (obj, ".", NULL, find_objs, (void*)info);
- }
- } else
- H5Giterate (obj, ".", NULL, find_objs, (void*)info);
-
- strcpy(info->prefix, tmp);
- H5Gclose (obj);
-
- } else
- info->status = 1;
-
- break;
-
- case H5G_DATASET:
-
- strcat(tmp,"/");
- strcat(tmp,name); /* absolute name of the data set */
- if (statbuf.nlink > info->threshold &&
- search_obj (info->dset_table, statbuf.objno) < 0)
- add_obj (info->dset_table, statbuf.objno, tmp);
-
- if ((obj=H5Dopen (group, name))>=0) {
- type = H5Dget_type (obj);
- if (H5Tcommitted(type) > 0 ) {
- H5Gget_objinfo(type, ".", TRUE, &statbuf);
- if (search_obj (info->type_table, statbuf.objno) < 0) {
- add_obj (info->type_table, statbuf.objno, tmp) ;
- info->type_table->objs[info->type_table->nobjs - 1].objflag = 0;
- }
- }
- H5Tclose(type);
- H5Dclose (obj);
- } else
- info->status = 1;
-
- break;
-
- case H5G_TYPE:
- strcat(tmp,"/");
- strcat(tmp,name); /* absolute name of the type */
- i = search_obj (info->type_table, statbuf.objno);
- if (i < 0) {
- add_obj (info->type_table, statbuf.objno, tmp) ;
- info->type_table->objs[info->type_table->nobjs-1].recorded = 1; /* named data type */
- info->type_table->objs[info->type_table->nobjs-1].objflag = 1; /* named data type */
- } else {
- strcpy (info->type_table->objs[i].objname, tmp);
- info->type_table->objs[i].recorded = 1;
- info->type_table->objs[info->type_table->nobjs-1].objflag = 1; /* named data type */
- }
- break;
-
- default:
- break;
- }
-
- free (tmp);
-
- return SUCCEED;
-}
-
-
-/*-------------------------------------------------------------------------
- * Function: dump_tables
- *
- * Purpose: display the contents of tables for debugging purposes
- *
- * Return: void
- *
- * Programmer: Ruey-Hsia Li
- *
- * Modifications:
- *
- *-----------------------------------------------------------------------*/
-void
-dump_table(char* tablename, table_t *table) {
-int i;
-
- printf("%s: # of entries = %d\n", tablename,table->nobjs);
- for ( i = 0; i < table->nobjs; i++)
- printf ("%lu %lu %s %d\n", table->objs[i].objno[0],
- table->objs[i].objno[1],
- table->objs[i].objname,
- table->objs[i].objflag);
-
-}
-
-
-
-/*-------------------------------------------------------------------------
- * Function: get_table_idx
- *
- * Purpose: Determine if objects are in a link loop
- *
- * Return: Success: table index of object detected to be in loop
- *
- * Failure: FAIL
- *
- * Programmer: Paul Harten
- *
- *-----------------------------------------------------------------------*/
-int
-get_table_idx(table_t *table, unsigned long *objno)
-{
-int idx = -1;
-/*
- switch (type) {
-
- case H5G_GROUP:
-
- idx = search_obj(&group_table, objno);
- break;
-
- case H5G_DATASET:
-
- idx = search_obj(&dset_table, objno);
- break;
-
- case H5G_TYPE:
-
- idx = search_obj(&type_table, objno);
- break;
-
- default:
-
- idx = -1;
-
- }
-*/
- idx = search_obj(table, objno);
- return idx;
-
-}
-/*-------------------------------------------------------------------------
- * Function: Get table flag setting
- *
- * Purpose: Keep the structures and variables used private to
- * this file.
- *
- * Return: Success: Boolean setting of the i'th element of the
- * object table flag
- *
- * Failure: FAIL
- *
- * Programmer: Paul Harten
- *
- *-----------------------------------------------------------------------*/
-int
-get_tableflag(table_t *table, int idx)
-{
- /*
- switch (type) {
-
- case H5G_GROUP:
-
- return group_table.objs[idx].objflag;
-
- case H5G_DATASET:
-
- return dset_table.objs[idx].objflag;
-
- case H5G_TYPE:
-
- return type_table.objs[idx].objflag;
-
- default:
-
- return -1;
-}
- */
- return(table->objs[idx].objflag);
-
-
-}
-/*-------------------------------------------------------------------------
- * Function: Set table flag setting
- *
- * Purpose: Keep the structures and variables used private to
- * this file.
- *
- * Return: Success: Boolean setting of the i'th element of the
- * object table flag
- *
- * Failure: FAIL
- *
- * Programmer: Paul Harten
- *
- *-----------------------------------------------------------------------*/
-int
-set_tableflag(table_t *table, int idx)
-{
-/*
- switch (type) {
-
- case H5G_GROUP:
-
- group_table.objs[idx].objflag = TRUE;
- return SUCCEED;
-
- case H5G_DATASET:
-
- dset_table.objs[idx].objflag = TRUE;
- return SUCCEED;
-
- case H5G_TYPE:
-
- type_table.objs[idx].objflag = TRUE;
- return SUCCEED;
-
- default:
-
- return FAIL;
-}
-*/
- table->objs[idx].objflag = TRUE;
- return(SUCCEED);
-
-
-}
-/*-------------------------------------------------------------------------
- * Function: Get name of i'th object in table
- *
- * Purpose:
- *
- * Return: Success: strdup() of object name character string
- *
- * Failure: NULL
- *
- * Programmer: Paul Harten
- *
- *-----------------------------------------------------------------------*/
-char *
-get_objectname(table_t* table, int idx)
-{
- /*
- switch (type) {
-
- case H5G_GROUP:
-
- return strdup(group_table.objs[idx].objname);
-
- case H5G_DATASET:
-
- return strdup(dset_table.objs[idx].objname);
-
- case H5G_TYPE:
-
- return strdup(type_table.objs[idx].objname);
-
- default:
-
- return NULL;
-
- }
- */
-
- return(strdup(table->objs[idx].objname));
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-