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