diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/h5repack/h5repack_list.c | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/tools/h5repack/h5repack_list.c b/tools/h5repack/h5repack_list.c deleted file mode 100644 index c391272..0000000 --- a/tools/h5repack/h5repack_list.c +++ /dev/null @@ -1,213 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include "h5repack.h" -#include "H5private.h" -#include "h5tools.h" -#include "h5tools_utils.h" - -extern char *progname; - -/*------------------------------------------------------------------------- - * Function: check_objects - * - * Purpose: locate all HDF5 objects in the file and compare with user - * supplied list - * - * Return: 0, ok, -1 no - * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu - * - * Date: September, 23, 2003 - * - *------------------------------------------------------------------------- - */ -int check_objects(const char* fname, - pack_opt_t *options) -{ - hid_t fid; - unsigned int i; - trav_table_t *travt=NULL; - - /* nothing to do */ - if (options->op_tbl->nelems==0) - return 0; - - /*------------------------------------------------------------------------- - * open the file - *------------------------------------------------------------------------- - */ - if ((fid=h5tools_fopen(fname, NULL, NULL, 0))<0) - { - printf("<%s>: %s\n", fname, H5FOPENERROR ); - return -1; - } - - /*------------------------------------------------------------------------- - * get the list of objects in the file - *------------------------------------------------------------------------- - */ - - /* init table */ - trav_table_init(&travt); - - /* get the list of objects in the file */ - if (h5trav_gettable(fid,travt)<0) - goto out; - - /*------------------------------------------------------------------------- - * compare with user supplied list - *------------------------------------------------------------------------- - */ - - if (options->verbose) - { - printf("Opening file <%s>. Searching for objects to modify...\n",fname); - } - - for ( i = 0; i < options->op_tbl->nelems; i++) - { - char* name=options->op_tbl->objs[i].path; - if (options->verbose) - printf(" <%s>",name); - - /* the input object names are present in the file and are valid */ - if (h5trav_getindext(name,travt)<0) - { - error_msg(progname, "%s Could not find <%s> in file <%s>. Exiting...\n", - (options->verbose?"\n":""),name,fname); - goto out; - } - if (options->verbose) - printf("...Found\n"); - - - /* check for extra filter conditions */ - switch (options->op_tbl->objs[i].filter->filtn) - { - - /* chunk size must be smaller than pixels per block */ - case H5Z_FILTER_SZIP: - { - int j; - int csize=1; - int ppb=options->op_tbl->objs[i].filter->cd_values[0]; - hsize_t dims[H5S_MAX_RANK]; - int rank; - hid_t did; - hid_t sid; - - if (options->op_tbl->objs[i].chunk.rank>0) - { - rank=options->op_tbl->objs[i].chunk.rank; - for (j=0; j<rank; j++) - csize*=(int)options->op_tbl->objs[i].chunk.chunk_lengths[j]; - } - else - { - if ((did=H5Dopen(fid,travt->objs[i].name))<0) - goto out; - if ((sid=H5Dget_space(did))<0) - goto out; - if ( (rank=H5Sget_simple_extent_ndims(sid))<0) - goto out; - HDmemset(dims, 0, sizeof dims); - if ( H5Sget_simple_extent_dims(sid,dims,NULL)<0) - goto out; - for (j=0; j<rank; j++) - csize*=(int)dims[j]; - if (H5Sclose(sid)<0) - goto out; - if (H5Dclose(did)<0) - goto out; - } - - if (csize < ppb ) - { - printf(" <warning: SZIP settins, chunk size is smaller than pixels per block>\n"); - goto out; - } - - - } - break; - - } - - } /* i */ - - /*------------------------------------------------------------------------- - * close - *------------------------------------------------------------------------- - */ - H5Fclose(fid); - trav_table_free(travt); - return 0; - -out: - H5Fclose(fid); - trav_table_free(travt); - return -1; -} - - - -/*------------------------------------------------------------------------- - * Function: print_objlist - * - * Purpose: print list of objects in file - * - * Return: void - * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu - * - * Date: October 23, 2003 - * - *------------------------------------------------------------------------- - */ -void print_objlist(const char *filename, - int nobjects, - trav_info_t *info ) -{ - int i; - - printf("File <%s>: # of entries = %d\n", filename, nobjects ); - for ( i = 0; i < nobjects; i++) - { - switch ( info[i].type ) - { - case H5G_GROUP: - printf(" %-10s %s\n", "group", info[i].name ); - break; - case H5G_DATASET: - printf(" %-10s %s\n", "dataset", info[i].name ); - break; - case H5G_TYPE: - printf(" %-10s %s\n", "datatype", info[i].name ); - break; - case H5G_LINK: - printf(" %-10s %s\n", "link", info[i].name ); - break; - default: - printf(" %-10s %s\n", "User defined object", info[i].name ); - break; - } - } - -} - |