summaryrefslogtreecommitdiffstats
path: root/src/H5Tpublic.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-23 19:53:37 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-23 19:53:37 (GMT)
commit6ee36e2b3afbddc4e9c1a20040132492d5b407ba (patch)
treebcaf153ccb985b480e989d7f84d8343ab2c2f8a6 /src/H5Tpublic.h
parentdd36e4a3419ae1f1102c7aa3bcdfa4aec8b7ce88 (diff)
downloadhdf5-6ee36e2b3afbddc4e9c1a20040132492d5b407ba.zip
hdf5-6ee36e2b3afbddc4e9c1a20040132492d5b407ba.tar.gz
hdf5-6ee36e2b3afbddc4e9c1a20040132492d5b407ba.tar.bz2
[svn-r168] Changes since 19980122
---------------------- ./MANIFEST Added new files. ./src/H5D.c Added support for partial datatype I/O which is needed when merging struct members between file and disk. This isn't the efficient version because the merge requires an extra gather (step 1b in my pipeline diagram) that isn't turned off when it isn't needed. ./src/H5T.c ./src/H5Tpkg.h ./src/H5Tprivate.h ./src/H5Tpublic.h Conversion functions take an extra argument which is a pointer to a blob of private data that can be used by the conversion function to save anything that's expensive to compute and is constant for a particular conversion path. ./src/H5Tconv.c Compound data type conversion is beginning to work! We can handle conversions between compound types that have members which are not arrays. It also supports partial conversion so we can omit certain members of the source and not clobber extra members in the destination. ./test/Makefile.in ./test/cmpd_dset.c [NEW] Added a test case that demonstrates how to use compound data types in a dataset. The output doesn't match the output of the other test cases yet, the the entire example is more readable and written entirely with the API.
Diffstat (limited to 'src/H5Tpublic.h')
-rw-r--r--src/H5Tpublic.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h
index 4608fe6..6c89e14 100644
--- a/src/H5Tpublic.h
+++ b/src/H5Tpublic.h
@@ -20,6 +20,9 @@
#include <H5public.h>
#include <H5Apublic.h>
+#define HOFFSET(S,M) ((const char*)&S.M-(const char*)&S)
+#define HPOFFSET(P,M) ((const char*)&(P->M)-(const char*)P)
+
/* These are the various classes of data types */
typedef enum H5T_class_t {
H5T_NO_CLASS = -1, /*error */
@@ -90,9 +93,8 @@ typedef enum H5T_pad_t {
} H5T_pad_t;
/* All data type conversion functions are... */
-typedef herr_t (*H5T_conv_t) (hid_t, hid_t, size_t, void *, const void *);
-#define HOFFSET(S,M) ((const char*)&S.M-(const char*)&S)
-#define HPOFFSET(P,M) ((const char*)&(P->M)-(const char*)P)
+typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, void **pcdata,
+ size_t nelmts, void *buf, void *bkg);
/* The predefined types */
#define H5T_NATIVE_CHAR (H5init(), H5T_NATIVE_CHAR_g)
@@ -207,7 +209,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);
+H5T_conv_t H5Tfind (hid_t src_id, hid_t dst_id, void **pcdata);
#ifdef __cplusplus
}