HDF5  1.12.0
H5Zprivate.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * Copyright by the Board of Trustees of the University of Illinois. *
4  * All rights reserved. *
5  * *
6  * This file is part of HDF5. The full HDF5 copyright notice, including *
7  * terms governing use, modification, and redistribution, is contained in *
8  * the COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /* Programmer: Robb Matzke <matzke@llnl.gov>
15  * Thursday, April 16, 1998
16  */
17 
18 #ifndef _H5Zprivate_H
19 #define _H5Zprivate_H
20 
21 /* Early typedefs to avoid circular dependencies */
23 
24 /* Include package's public header */
25 #include "H5Zpublic.h"
26 
27 /* Private headers needed by this file */
28 #include "H5Tprivate.h" /* Datatypes */
29 
30 /**************************/
31 /* Library Private Macros */
32 /**************************/
33 
34 /* Special parameters for szip compression */
35 /* [These are aliases for the similar definitions in szlib.h, which we can't
36  * include directly due to the duplication of various symbols with the zlib.h
37  * header file] */
38 #define H5_SZIP_LSB_OPTION_MASK 8
39 #define H5_SZIP_MSB_OPTION_MASK 16
40 #define H5_SZIP_RAW_OPTION_MASK 128
41 
42 /* Common # of 'client data values' for filters */
43 /* (avoids dynamic memory allocation in most cases) */
44 #define H5Z_COMMON_CD_VALUES 4
45 
46 /* Common size of filter name */
47 /* (avoids dynamic memory allocation in most cases) */
48 #define H5Z_COMMON_NAME_LEN 12
49 
50 /****************************/
51 /* Library Private Typedefs */
52 /****************************/
53 
54 /* Structure to store information about each filter's parameters */
56  H5Z_filter_t id; /*filter identification number */
57  unsigned flags; /*defn and invocation flags */
58  char _name[H5Z_COMMON_NAME_LEN]; /*internal filter name */
59  char *name; /*optional filter name */
60  size_t cd_nelmts; /*number of elements in cd_values[] */
61  unsigned _cd_values[H5Z_COMMON_CD_VALUES]; /*internal client data values */
62  unsigned *cd_values; /*client data values */
63 };
64 
65 /*****************************/
66 /* Library-private Variables */
67 /*****************************/
68 
69 
70 /***************************************/
71 /* Library-private Function Prototypes */
72 /***************************************/
73 struct H5O_pline_t; /*forward decl*/
74 
75 /* Internal API routines */
79  unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]);
81  unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]);
82 H5_DLL herr_t H5Z_pipeline(const struct H5O_pline_t *pline,
83  unsigned flags, unsigned *filter_mask/*in,out*/,
84  H5Z_EDC_t edc_read, H5Z_cb_t cb_struct,
85  size_t *nbytes/*in,out*/, size_t *buf_size/*in,out*/,
86  void **buf/*in,out*/);
88 H5_DLL herr_t H5Z_can_apply(hid_t dcpl_id, hid_t type_id);
89 H5_DLL herr_t H5Z_set_local(hid_t dcpl_id, hid_t type_id);
98 H5_DLL herr_t H5Z_get_filter_info(H5Z_filter_t filter, unsigned int *filter_config_flags);
99 
100 /* Data Transform Functions */
101 typedef struct H5Z_data_xform_t H5Z_data_xform_t; /* Defined in H5Ztrans.c */
102 
103 H5_DLL H5Z_data_xform_t *H5Z_xform_create(const char *expr);
104 H5_DLL herr_t H5Z_xform_copy(H5Z_data_xform_t **data_xform_prop);
106 H5_DLL herr_t H5Z_xform_eval(H5Z_data_xform_t *data_xform_prop, void *array,
107  size_t array_size, const H5T_t *buf_type);
108 H5_DLL hbool_t H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop);
109 H5_DLL const char *H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop);
110 
111 #endif
H5Z_filter_t
int H5Z_filter_t
Definition: H5Zpublic.h:31
H5Z_filter_info_t::_cd_values
unsigned _cd_values[H5Z_COMMON_CD_VALUES]
Definition: H5Zprivate.h:61
H5Z_class2_t
Definition: H5Zpublic.h:208
H5Z_all_filters_avail
H5_DLL htri_t H5Z_all_filters_avail(const struct H5O_pline_t *pline)
H5Z_pipeline
H5_DLL herr_t H5Z_pipeline(const struct H5O_pline_t *pline, unsigned flags, unsigned *filter_mask, H5Z_EDC_t edc_read, H5Z_cb_t cb_struct, size_t *nbytes, size_t *buf_size, void **buf)
H5Zpublic.h
H5Z_append
H5_DLL herr_t H5Z_append(struct H5O_pline_t *pline, H5Z_filter_t filter, unsigned flags, size_t cd_nelmts, const unsigned int cd_values[])
Definition: H5Z.c:1079
H5Z_xform_create
H5_DLL H5Z_data_xform_t * H5Z_xform_create(const char *expr)
Definition: H5Ztrans.c:1539
H5Z_xform_eval
H5_DLL herr_t H5Z_xform_eval(H5Z_data_xform_t *data_xform_prop, void *array, size_t array_size, const H5T_t *buf_type)
Definition: H5Ztrans.c:1010
H5O_pline_t
Definition: H5Oprivate.h:701
H5Z_filter_in_pline
H5_DLL htri_t H5Z_filter_in_pline(const struct H5O_pline_t *pline, H5Z_filter_t filter)
H5Z_filter_info_t::id
H5Z_filter_t id
Definition: H5Zprivate.h:56
H5Z_xform_copy
H5_DLL herr_t H5Z_xform_copy(H5Z_data_xform_t **data_xform_prop)
Definition: H5Ztrans.c:1676
H5O_pline_t::filter
H5Z_filter_info_t * filter
Definition: H5Oprivate.h:707
htri_t
int htri_t
Definition: H5public.h:160
H5Z_COMMON_NAME_LEN
#define H5Z_COMMON_NAME_LEN
Definition: H5Zprivate.h:48
H5Z_find
H5_DLL H5Z_class2_t * H5Z_find(H5Z_filter_t id)
Definition: H5Z.c:1206
H5Z_filter_info_t::cd_values
unsigned * cd_values
Definition: H5Zprivate.h:62
H5Z_filter_info_t::name
char * name
Definition: H5Zprivate.h:59
H5Z_delete
H5_DLL herr_t H5Z_delete(struct H5O_pline_t *pline, H5Z_filter_t filter)
Definition: H5Z.c:1520
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5Z_register
H5_DLL herr_t H5Z_register(const H5Z_class2_t *cls)
Definition: H5Z.c:291
H5Z_filter_avail
H5_DLL htri_t H5Z_filter_avail(H5Z_filter_t id)
Definition: H5Z.c:687
H5T_t
Definition: H5Tpkg.h:350
H5Z_xform_extract_xform_str
H5_DLL const char * H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop)
Definition: H5Ztrans.c:1785
H5Z_filter_info_t::cd_nelmts
size_t cd_nelmts
Definition: H5Zprivate.h:60
H5Z_init
H5_DLL herr_t H5Z_init(void)
H5Z_modify
H5_DLL herr_t H5Z_modify(const struct H5O_pline_t *pline, H5Z_filter_t filter, unsigned flags, size_t cd_nelmts, const unsigned int cd_values[])
H5Z_xform_noop
H5_DLL hbool_t H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop)
Definition: H5Ztrans.c:1756
H5Z_xform_destroy
H5_DLL herr_t H5Z_xform_destroy(H5Z_data_xform_t *data_xform_prop)
Definition: H5Ztrans.c:1630
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5Tprivate.h
H5Z_filter_info
H5_DLL H5Z_filter_info_t * H5Z_filter_info(const struct H5O_pline_t *pline, H5Z_filter_t filter)
H5Z_filter_info_t
Definition: H5Zprivate.h:55
H5Z_can_apply_direct
H5_DLL herr_t H5Z_can_apply_direct(const struct H5O_pline_t *pline)
H5Z_COMMON_CD_VALUES
#define H5Z_COMMON_CD_VALUES
Definition: H5Zprivate.h:44
H5Z_can_apply
H5_DLL herr_t H5Z_can_apply(hid_t dcpl_id, hid_t type_id)
Definition: H5Z.c:896
herr_t
int herr_t
Definition: H5public.h:128
H5Z_filter_info_t::_name
char _name[H5Z_COMMON_NAME_LEN]
Definition: H5Zprivate.h:58
H5Z_EDC_t
H5Z_EDC_t
Definition: H5Zpublic.h:107
hbool_t
bool hbool_t
Definition: H5public.h:159
H5Z_set_local_direct
H5_DLL herr_t H5Z_set_local_direct(const struct H5O_pline_t *pline)
H5Z_cb_t
Definition: H5Zpublic.h:131
H5Z_data_xform_t
Definition: H5Ztrans.c:61
H5Z_set_local
H5_DLL herr_t H5Z_set_local(hid_t dcpl_id, hid_t type_id)
Definition: H5Z.c:927
H5Z_get_filter_info
H5_DLL herr_t H5Z_get_filter_info(H5Z_filter_t filter, unsigned int *filter_config_flags)
Definition: H5Z.c:1627
H5Z_filter_info_t::flags
unsigned flags
Definition: H5Zprivate.h:57