mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-27 07:30:33 +08:00
44d0dcaad2
re: https://github.com/Unidata/netcdf-c/issues/1584 Support has been added for multiple filters per variable. This affects a number of components in netcdf. The new APIs are documented in NUG/filters.md. The primary changes are: * A set of new functions are provided (see __include/netcdf_filter.h__). - Obtain a list of the filters associated with a variable - Obtain the parameters for a specific filter. * The existing __nc_inq_var_filter__ function now returns info about the first defined filter. * The utilities (ncgen, ncdump, and nccopy) now support an extended format for specifying a sequence of filters. The general form is __<filter>|<filter>..._. * The ncdump **_Filter** attribute now dumps a list of all the filters associated with a variable using the above new format. * Filter specifications can now use a filter name instead of number for filters known to the netcdf library, which in turn is taken from the HDF5 filter registration page. * New errors are defined: NC_EFILTER and NC_ENOFILTER. The latter is returned if an attempt is made to access an unknown filter. * Internally, the dispatch table has been extended to add a function to handle all of the filter functions. * New, filter-related, tests were added to nc_test4. * A new plugin was added to the plugins directory to help with testing. Notes: 1. The shuffle and fletcher32 filters are not part of the multifilter system. Misc. changes: 1. A debug module was added to libhdf5 to help catch error locations.
28 lines
825 B
C
28 lines
825 B
C
#ifndef H5MISC_H
|
|
#define H5MISC_H
|
|
|
|
#ifdef _WIN32
|
|
#ifdef DLL_EXPORT /* define when building the library */
|
|
#define DECLSPEC __declspec(dllexport)
|
|
#else
|
|
#define DECLSPEC __declspec(dllimport)
|
|
#endif
|
|
#else
|
|
#define DECLSPEC extern
|
|
#endif
|
|
|
|
/* use an integer greater than 256 to be id of the registered filter. */
|
|
#define H5Z_FILTER_NOOP 40000
|
|
|
|
/* declare the hdf5 interface */
|
|
DECLSPEC H5PL_type_t H5PLget_plugin_type(void);
|
|
DECLSPEC const void* H5PLget_plugin_info(void);
|
|
DECLSPEC const H5Z_class2_t H5Z_NOOP[1];
|
|
|
|
/* Declare filter specific functions */
|
|
DECLSPEC htri_t H5Z_noop_can_apply(hid_t dcpl_id, hid_t type_id, hid_t space_id);
|
|
DECLSPEC size_t H5Z_filter_noop(unsigned flags,size_t cd_nelmts,const unsigned cd_values[],
|
|
size_t nbytes,size_t *buf_size,void**buf);
|
|
|
|
#endif /*H5MISC_H*/
|