00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _H5Zprivate_H
00021 #define _H5Zprivate_H
00022
00023
00024 #include "H5Zpublic.h"
00025
00026
00027 #include "H5Tprivate.h"
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #define H5_SZIP_LSB_OPTION_MASK 8
00038 #define H5_SZIP_MSB_OPTION_MASK 16
00039 #define H5_SZIP_RAW_OPTION_MASK 128
00040
00041
00042
00043 #define H5Z_COMMON_CD_VALUES 4
00044
00045
00046
00047 #define H5Z_COMMON_NAME_LEN 12
00048
00049
00050
00051
00052
00053
00054 typedef struct {
00055 H5Z_filter_t id;
00056 unsigned flags;
00057 char _name[H5Z_COMMON_NAME_LEN];
00058 char *name;
00059 size_t cd_nelmts;
00060 unsigned _cd_values[H5Z_COMMON_CD_VALUES];
00061 unsigned *cd_values;
00062 } H5Z_filter_info_t;
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 struct H5O_pline_t;
00073
00074
00075 H5_DLL herr_t H5Z_init(void);
00076 H5_DLL herr_t H5Z_register(const H5Z_class2_t *cls);
00077 H5_DLL herr_t H5Z_unregister(H5Z_filter_t id);
00078 H5_DLL herr_t H5Z_append(struct H5O_pline_t *pline, H5Z_filter_t filter,
00079 unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]);
00080 H5_DLL herr_t H5Z_modify(const struct H5O_pline_t *pline, H5Z_filter_t filter,
00081 unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]);
00082 H5_DLL herr_t H5Z_pipeline(const struct H5O_pline_t *pline,
00083 unsigned flags, unsigned *filter_mask,
00084 H5Z_EDC_t edc_read, H5Z_cb_t cb_struct,
00085 size_t *nbytes, size_t *buf_size,
00086 void **buf);
00087 H5_DLL H5Z_class2_t *H5Z_find(H5Z_filter_t id);
00088 H5_DLL herr_t H5Z_can_apply(hid_t dcpl_id, hid_t type_id);
00089 H5_DLL herr_t H5Z_set_local(hid_t dcpl_id, hid_t type_id);
00090 H5_DLL herr_t H5Z_can_apply_direct(const struct H5O_pline_t *pline);
00091 H5_DLL herr_t H5Z_set_local_direct(const struct H5O_pline_t *pline);
00092 H5_DLL H5Z_filter_info_t *H5Z_filter_info(const struct H5O_pline_t *pline,
00093 H5Z_filter_t filter);
00094 H5_DLL htri_t H5Z_all_filters_avail(const struct H5O_pline_t *pline);
00095 H5_DLL herr_t H5Z_delete(struct H5O_pline_t *pline, H5Z_filter_t filter);
00096
00097
00098 typedef struct H5Z_data_xform_t H5Z_data_xform_t;
00099
00100 H5_DLL H5Z_data_xform_t *H5Z_xform_create(const char *expr);
00101 H5_DLL herr_t H5Z_xform_copy(H5Z_data_xform_t **data_xform_prop);
00102 H5_DLL herr_t H5Z_xform_destroy(H5Z_data_xform_t *data_xform_prop);
00103 H5_DLL herr_t H5Z_xform_eval(H5Z_data_xform_t *data_xform_prop, void *array,
00104 size_t array_size, const H5T_t *buf_type);
00105 H5_DLL hbool_t H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop);
00106 H5_DLL char* H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop);
00107
00108 #endif