[svn-r16808] Purpose: Fix bug 1533

Description:
Previously, there was no versioning for H5Z_class_t.  This prevented applications
written for 1.6 using custom filters from being able to use the 1.8 library.
There is now an H5Z_class1_t and H5Z_class2_t to enable compatibility.  H5Zregister is
*not* versioned, it determines which version of the struct has been passed in by the
value of the first field (id or version, both are ints).

Tested: jam, linew, smirom (h5committest), jam (--with-default-api-version=v16)
This commit is contained in:
Neil Fortner
2009-04-20 14:17:59 -05:00
parent 7b47b79f2d
commit 233fa9bee7
21 changed files with 151 additions and 52 deletions

View File

@@ -42,46 +42,46 @@
/*
* Deflate filter
*/
H5_DLLVAR const H5Z_class_t H5Z_DEFLATE[1];
H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1];
#endif /* H5_HAVE_FILTER_DEFLATE */
#ifdef H5_HAVE_FILTER_SHUFFLE
/*
* Shuffle filter
*/
H5_DLLVAR const H5Z_class_t H5Z_SHUFFLE[1];
H5_DLLVAR const H5Z_class2_t H5Z_SHUFFLE[1];
#endif /* H5_HAVE_FILTER_SHUFFLE */
#ifdef H5_HAVE_FILTER_FLETCHER32
/*
* Fletcher32 filter
*/
H5_DLLVAR const H5Z_class_t H5Z_FLETCHER32[1];
H5_DLLVAR const H5Z_class2_t H5Z_FLETCHER32[1];
#endif /* H5_HAVE_FILTER_FLETCHER32 */
#ifdef H5_HAVE_FILTER_SZIP
/*
* szip filter
*/
H5_DLLVAR H5Z_class_t H5Z_SZIP[1];
H5_DLLVAR H5Z_class2_t H5Z_SZIP[1];
#endif /* H5_HAVE_FILTER_SZIP */
#ifdef H5_HAVE_FILTER_NBIT
/*
* nbit filter
*/
H5_DLLVAR H5Z_class_t H5Z_NBIT[1];
H5_DLLVAR H5Z_class2_t H5Z_NBIT[1];
#endif /* H5_HAVE_FILTER_NBIT */
#ifdef H5_HAVE_FILTER_SCALEOFFSET
/*
* scaleoffset filter
*/
H5_DLLVAR H5Z_class_t H5Z_SCALEOFFSET[1];
H5_DLLVAR H5Z_class2_t H5Z_SCALEOFFSET[1];
#endif /* H5_HAVE_FILTER_SCALEOFFSET */
/* Package-local function prototypes */
H5_DLL void H5Z_update_class_vers(H5Z_class_t * old_vers, H5Z_class_t * curr_vers);
H5_DLL void H5Z_update_class_vers(H5Z_class2_t * old_vers, H5Z_class2_t * curr_vers);
#endif /* _H5Zpkg_H */