summaryrefslogtreecommitdiffstats
path: root/src/H5Tpublic.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-26 20:56:18 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-26 20:56:18 (GMT)
commit5c6a3af39679b2bbbdaebf8f1c19edbeed7af248 (patch)
tree8c495a15af0ae785dfcb22420e197d583deef7ba /src/H5Tpublic.h
parent6cd8818b735d3c22f3a1f7cd30d52360139ed72c (diff)
downloadhdf5-5c6a3af39679b2bbbdaebf8f1c19edbeed7af248.zip
hdf5-5c6a3af39679b2bbbdaebf8f1c19edbeed7af248.tar.gz
hdf5-5c6a3af39679b2bbbdaebf8f1c19edbeed7af248.tar.bz2
[svn-r170] Changes since 19980123
---------------------- ./src/H5D.c ./src/H5T.c ./src/H5Tconv.c ./src/H5Tpkg.h ./src/H5Tprivate.h ./src/H5Tpublic.h ./test/cmpd_dset.c Added support to turn background buffer on/off to help speed up conversions. Currently, every type of conversion turns it off except compound-->compound conversions which always turn it on. In the future the compound-->compound conversions might be more frugal.
Diffstat (limited to 'src/H5Tpublic.h')
-rw-r--r--src/H5Tpublic.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h
index 6c89e14..aebf33c 100644
--- a/src/H5Tpublic.h
+++ b/src/H5Tpublic.h
@@ -23,6 +23,9 @@
#define HOFFSET(S,M) ((const char*)&S.M-(const char*)&S)
#define HPOFFSET(P,M) ((const char*)&(P->M)-(const char*)P)
+#define H5T_CONV_INIT 0
+#define H5T_CONV_FREE 1
+
/* These are the various classes of data types */
typedef enum H5T_class_t {
H5T_NO_CLASS = -1, /*error */
@@ -92,8 +95,22 @@ typedef enum H5T_pad_t {
H5T_NPAD = 3 /*THIS MUST BE LAST */
} H5T_pad_t;
+/* How is the `bkg' buffer used by the conversion function? */
+typedef enum H5T_bkg_t {
+ H5T_BKG_NONE = 0, /*background buffer is not needed, send NULL */
+ H5T_BKG_TEMP = 1, /*bkg buffer used as temp storage only */
+ H5T_BKG_YES = 2, /*init bkg buf with data before conversion */
+} H5T_bkg_t;
+
+/* Type conversion client data */
+typedef struct H5T_cdata_t {
+ H5T_bkg_t need_bkg;/*is the background buffer needed? */
+ hbool_t recalc; /*recalculate private data */
+ void *priv; /*private data */
+} H5T_cdata_t;
+
/* All data type conversion functions are... */
-typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, void **pcdata,
+typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
size_t nelmts, void *buf, void *bkg);
/* The predefined types */
@@ -209,7 +226,7 @@ herr_t H5Tset_strpad (hid_t type_id, H5T_str_t strpad);
herr_t H5Tregister_hard (hid_t src_id, hid_t dst_id, H5T_conv_t func);
herr_t H5Tregister_soft (H5T_class_t src, H5T_class_t dst, H5T_conv_t func);
herr_t H5Tunregister (H5T_conv_t func);
-H5T_conv_t H5Tfind (hid_t src_id, hid_t dst_id, void **pcdata);
+H5T_conv_t H5Tfind (hid_t src_id, hid_t dst_id, H5T_cdata_t **pcdata);
#ifdef __cplusplus
}