diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-01-23 19:53:37 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-01-23 19:53:37 (GMT) |
commit | 6ee36e2b3afbddc4e9c1a20040132492d5b407ba (patch) | |
tree | bcaf153ccb985b480e989d7f84d8343ab2c2f8a6 /src/H5Tpkg.h | |
parent | dd36e4a3419ae1f1102c7aa3bcdfa4aec8b7ce88 (diff) | |
download | hdf5-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.h | 20 |
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 |