diff options
author | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2003-10-22 21:55:07 (GMT) |
---|---|---|
committer | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2003-10-22 21:55:07 (GMT) |
commit | 9ad2479dd4a207f0c1e8f66b1155a6d364f16c07 (patch) | |
tree | 70523a7af54fe82b10f5bed7ba7d421c4eebc96b /tools/h5repack/h5repack.h | |
parent | 04d8607a9a119bf7315907c45b2a0d66afb257d1 (diff) | |
download | hdf5-9ad2479dd4a207f0c1e8f66b1155a6d364f16c07.zip hdf5-9ad2479dd4a207f0c1e8f66b1155a6d364f16c07.tar.gz hdf5-9ad2479dd4a207f0c1e8f66b1155a6d364f16c07.tar.bz2 |
[svn-r7705] Purpose:
forgot to CVS add these new .h files to the h5repack bunch
Misc. update:
Diffstat (limited to 'tools/h5repack/h5repack.h')
-rw-r--r-- | tools/h5repack/h5repack.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/tools/h5repack/h5repack.h b/tools/h5repack/h5repack.h new file mode 100644 index 0000000..29b04ac --- /dev/null +++ b/tools/h5repack/h5repack.h @@ -0,0 +1,116 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +#ifndef H5REPACK_H__ +#define H5REPACK_H__ + +#include "hdf5.h" + +#define PFORMAT "%-7s %-7s %-7s\n" /*chunk info, compression info, name*/ +#define PFORMAT1 "%-7s %-7s %-7s" /*chunk info, compression info, name*/ + +#define MAX_NC_NAME 256 /* max length of a name */ +#define MAX_VAR_DIMS 32 /* max per variable dimensions */ + + + + +/*------------------------------------------------------------------------- + * data structures for command line options + *------------------------------------------------------------------------- + */ + +/* a list of names */ +typedef struct { + char obj[MAX_NC_NAME]; +} obj_list_t; + +/* + the type of compression and additional parameter + type can be one of the filters + H5Z_FILTER_NONE 0, uncompress if compressed + H5Z_FILTER_DEFLATE 1 , deflation like gzip + H5Z_FILTER_SZIP 4 , szip compression +*/ +typedef struct { + int type; + int info; +} comp_info_t; + +/* chunk lengths along each dimension and rank */ +typedef struct { + hsize_t chunk_lengths[MAX_VAR_DIMS]; + int rank; +} chunk_info_t; + +/* information for one object, contains PATH, CHUNK info and COMP info */ +typedef struct { + char path[MAX_NC_NAME]; /* name of object */ + comp_info_t comp; /* compression information */ + chunk_info_t chunk; /* chunk information */ +} pack_info_t; + +/* store a list of all objects */ +typedef struct { + int size; + int nelems; + pack_info_t *objs; +} options_table_t; + + +/*------------------------------------------------------------------------- + * command line options + *------------------------------------------------------------------------- + */ + +/* all the above, ready to go to the hrepack call */ +typedef struct { + options_table_t *op_tbl; /*table with all -c and -t options */ + int all_chunk; /*chunk all objects, input of "*" */ + int all_comp; /*comp all objects, input of "*" */ + comp_info_t comp_g; /*global compress INFO for the ALL case */ + chunk_info_t chunk_g; /*global chunk INFO for the ALL case */ + int verbose; /*verbose mode */ + int trip; /*which cycle are we in */ + int threshold; /*minimum size to compress, in bytes */ + +} packoptions_t; + + + +/*------------------------------------------------------------------------- + * public functions + *------------------------------------------------------------------------- + */ + +#ifdef __cplusplus +extern "C" { +#endif + +int h5repack (char* infile, char* outfile, packoptions_t *options); +int h5repack_addcomp (char* str, packoptions_t *options); +int h5repack_addchunk(char* str, packoptions_t *options); +int h5repack_init (packoptions_t *options, int verbose); +int h5repack_end (packoptions_t *options); + + + +#ifdef __cplusplus +} +#endif + + + +#endif /* H5REPACK_H__ */ |