summaryrefslogtreecommitdiffstats
path: root/src/H5Zpublic.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-04-17 21:29:43 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-04-17 21:29:43 (GMT)
commit011457075e41d587c47f89250514b3393a78d329 (patch)
treed9b12f2ffc87b12575607102d207a60cd52214b9 /src/H5Zpublic.h
parentb59ab36893949af14c403ab46cbdb397f0a24f5b (diff)
downloadhdf5-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.h69
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
+