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/H5Tpublic.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/H5Tpublic.h')
-rw-r--r-- | src/H5Tpublic.h | 10 |
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 } |