1 module hdf5.H5Zpublic;
2 
3 import core.stdc.config;
4 
5 import hdf5.H5public;
6 import hdf5.H5Ipublic;
7 import hdf5.H5Tpublic;
8 
9 extern (C):
10 
11 alias int H5Z_filter_t;
12 //alias H5Z_SO_scale_type_t H5Z_SO_scale_type_t;
13 //alias H5Z_EDC_t H5Z_EDC_t;
14 //alias H5Z_cb_return_t H5Z_cb_return_t;
15 alias H5Z_cb_return_t function (int, void*, c_ulong, void*) H5Z_filter_func_t;
16 //alias H5Z_cb_t H5Z_cb_t;
17 alias int function (c_long, c_long, c_long) H5Z_can_apply_func_t;
18 alias int function (c_long, c_long, c_long) H5Z_set_local_func_t;
19 alias c_ulong function (uint, c_ulong, const(uint)*, c_ulong, c_ulong*, void**) H5Z_func_t;
20 //alias H5Z_class2_t H5Z_class2_t;
21 //alias H5Z_class1_t H5Z_class1_t;
22 
23 enum H5Z_SO_scale_type_t
24 {
25     H5Z_SO_FLOAT_DSCALE = 0,
26     H5Z_SO_FLOAT_ESCALE = 1,
27     H5Z_SO_INT = 2
28 }
29 
30 enum H5Z_EDC_t
31 {
32     H5Z_ERROR_EDC = -1,
33     H5Z_DISABLE_EDC = 0,
34     H5Z_ENABLE_EDC = 1,
35     H5Z_NO_EDC = 2
36 }
37 
38 enum H5Z_cb_return_t
39 {
40     H5Z_CB_ERROR = -1,
41     H5Z_CB_FAIL = 0,
42     H5Z_CB_CONT = 1,
43     H5Z_CB_NO = 2
44 }
45 
46 struct H5Z_cb_t
47 {
48     H5Z_filter_func_t func;
49     void* op_data;
50 }
51 
52 struct H5Z_class2_t
53 {
54     int version_;
55     H5Z_filter_t id;
56     uint encoder_present;
57     uint decoder_present;
58     const(char)* name;
59     H5Z_can_apply_func_t can_apply;
60     H5Z_set_local_func_t set_local;
61     H5Z_func_t filter;
62 }
63 
64 struct H5Z_class1_t
65 {
66     H5Z_filter_t id;
67     const(char)* name;
68     H5Z_can_apply_func_t can_apply;
69     H5Z_set_local_func_t set_local;
70     H5Z_func_t filter;
71 }
72 
73 herr_t H5Zregister (const(void)* cls);
74 herr_t H5Zunregister (H5Z_filter_t id);
75 htri_t H5Zfilter_avail (H5Z_filter_t id);
76 herr_t H5Zget_filter_info (H5Z_filter_t filter, uint* filter_config_flags);