summaryrefslogtreecommitdiffstats
path: root/src/H5Tpkg.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/H5Tpkg.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/H5Tpkg.h')
-rw-r--r--src/H5Tpkg.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h
index 5fc1075..7fa5811 100644
--- a/src/H5Tpkg.h
+++ b/src/H5Tpkg.h
@@ -78,6 +78,7 @@ typedef struct H5T_path_t {
H5T_t *dst; /*destination data type ID */
H5T_conv_t hard; /*hard conversion function or null */
H5T_conv_t soft; /*soft conversion function or null */
+ void *cdata; /*extra conversion data */
} H5T_path_t;
/* The master list of soft conversion functions */
@@ -87,17 +88,24 @@ typedef struct H5T_soft_t {
H5T_conv_t func; /*the conversion function */
} H5T_soft_t;
+/* Conversion data for H5T_conv_struct() */
+typedef struct H5T_conv_struct_t {
+ intn *src2dst; /*mapping from src to dst memb ID */
+ hid_t *src_memb_id; /*source member type ID's */
+ hid_t *dst_memb_id; /*destination member type ID's */
+} H5T_conv_struct_t;
+
/* Function prototypes for H5T package scope */
H5T_path_t *H5T_path_find (const H5T_t *src, const H5T_t *dst,
hbool_t create);
/* Conversion functions */
-herr_t H5T_conv_noop (hid_t src_id, hid_t dst_id, size_t nelmts, void *buf,
- const void *background);
-herr_t H5T_conv_order (hid_t src_id, hid_t dst_id, size_t nelmts, void *_buf,
- const void *background);
-herr_t H5T_conv_struct (hid_t src_id, hid_t dst_id, size_t nelmts,
- void *_buf, const void *background);
+herr_t H5T_conv_noop (hid_t src_id, hid_t dst_id, void **pcdata,
+ size_t nelmts, void *buf, void *bkg);
+herr_t H5T_conv_order (hid_t src_id, hid_t dst_id, void **pcdata,
+ size_t nelmts, void *_buf, void *bkg);
+herr_t H5T_conv_struct (hid_t src_id, hid_t dst_id, void **pcdata,
+ size_t nelmts, void *_buf, void *bkg);
#endif