diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-04-17 21:29:43 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-04-17 21:29:43 (GMT) |
commit | 011457075e41d587c47f89250514b3393a78d329 (patch) | |
tree | d9b12f2ffc87b12575607102d207a60cd52214b9 /src/H5Zpublic.h | |
parent | b59ab36893949af14c403ab46cbdb397f0a24f5b (diff) | |
download | hdf5-011457075e41d587c47f89250514b3393a78d329.zip hdf5-011457075e41d587c47f89250514b3393a78d329.tar.gz hdf5-011457075e41d587c47f89250514b3393a78d329.tar.bz2 |
[svn-r353] Changes since 19980414
----------------------
./html/Compression.html [NEW]
./html/Datasets.html
./html/H5.format.html
./html/H5.user.html
Documented compression. A couple of the H5P functions aren't
quite implemented yet but they're coming soon...
./src/H5Dprivate.h
./src/H5E.c
./src/H5Epublic.h
./src/H5Farray.c
./src/H5Fistore.c
./src/H5Fprivate.h
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocomp.c [NEW]
./src/H5Oprivate.h
./src/H5P.c
./src/H5Ppublic.h
./src/H5Sprivate.h
./src/H5Ssimp.c
./src/H5Z.c [NEW]
./src/H5Zprivate.h [NEW]
./src/H5Zpublic.h [NEW]
./src/Makefile.in
./src/hdf5.h
./test/dsets.c
./test/istore.c
Compression is now mostly working. Don't try to open a
compressed dataset though because the compression message
won't be read.
./html/Datatypes.html
./html/H5.api.html
./src/H5.c
./src/H5private.h
./src/H5D.c
./src/H5T.c
./src/H5Tconv.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
Added timing support. When compiled with H5T_DEBUG defined
the library will print conversion bandwidths when the library
closes. The H5Tregister functions take a string as the first
argument so the statistics output is meaningful.
./MANIFEST
Added new files.
./configure.in
./src/H5config.h.in
Check for getrusage(). Check for compress2() in libz.a and
the zlib.h header file. Added `z' to the debug list.
./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
./src/debug.c
Cleaned up some indentation and added support to print istore
B-trees. From the debugger, give the B-tree address and the
dimensionality from the layout message of the object header.
./src/h5ls.c
The oid is printed as w:x:y:z where w and x are the file ID
and y and z are the OID within the file. You can give z or
y*2^32+z as an argument to the debugger to print the object
header for the object.
./src/H5AC.c
Cleaned up statistics and made them match those reported by
H5T and H5Z.
./src/H5MM.c
./src/H5MMprivate.h
./src/H5Fistore.c
Finally got rid of a couple of long-standing const cast
warnings.
Diffstat (limited to 'src/H5Zpublic.h')
-rw-r--r-- | src/H5Zpublic.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/H5Zpublic.h b/src/H5Zpublic.h new file mode 100644 index 0000000..daebf89 --- /dev/null +++ b/src/H5Zpublic.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 1998 NCSA + * All rights reserved. + * + * Programmer: Robb Matzke <matzke@llnl.gov> + * Thursday, April 16, 1998 + */ +#ifndef _H5Zpublic_H +#define _H5Zpublic_H + +/* + * Compression methods. Method zero means no compression. Methods 1 through + * 15 are defined by the library. Methods 16-255 are user-defined. + */ +typedef int H5Z_method_t; +#define H5Z_NONE 0 /*no compression, must be zero */ +#define H5Z_DEFLATE 1 /*deflation like gzip */ +#define H5Z_RES_2 2 /*reserved for internal use */ +#define H5Z_RES_3 3 /*reserved for internal use */ +#define H5Z_RES_4 4 /*reserved for internal use */ +#define H5Z_RES_5 5 /*reserved for internal use */ +#define H5Z_RES_6 6 /*reserved for internal use */ +#define H5Z_RES_7 7 /*reserved for internal use */ +#define H5Z_RES_8 8 /*reserved for internal use */ +#define H5Z_RES_9 9 /*reserved for internal use */ +#define H5Z_RES_10 10 /*reserved for internal use */ +#define H5Z_RES_11 11 /*reserved for internal use */ +#define H5Z_RES_12 12 /*reserved for internal use */ +#define H5Z_RES_13 13 /*reserved for internal use */ +#define H5Z_RES_14 14 /*reserved for internal use */ +#define H5Z_RES_15 15 /*reserved for internal use */ +/* user-defined 16-255 */ +#define H5Z_MAXVAL 255 /*maximum compression method ID */ + +/* + * A compression function takes some configuration data which comes from the + * compression message, namely FLAGS, CD_SIZE, and CLIENT_DATA. It should + * read SRC_NBYTES from SRC and compress them into at most DST_NBYTES of DST. + * If the compressed data would be larger than DST_NBYTES the function should + * return a value greater than or equal to DST_NBYTES. On failure the + * function may return zero. + * + * The uncompression function is the inverse of compression and takes the + * same arguments. The SRC_NBYTES argument is the number of compressed bytes + * in SRC. The function should uncompress SRC into DST. For redundancy, + * DST_NBYTES contains the size of the DST buffer although if the algorithm + * is operating properly and the file has not been corrupted the uncompressed + * data will never be larger than DST_NBYTES. The function should return the + * number of bytes in the DST buffer or zero on failure. Failure includes + * the overflow of the DST buffer. + */ +typedef size_t (*H5Z_func_t)(unsigned int flags, size_t cd_size, + const void *client_data, size_t src_nbytes, + const void *src, size_t dst_nbytes, + void *dst/*out*/); + + +#ifdef __cplusplus +extern "C" { +#endif + +herr_t H5Zregister (H5Z_method_t method, const char *name, H5Z_func_t compress, + H5Z_func_t uncompress); + +#ifdef __cplusplus +} +#endif +#endif + |