HDF5  1.13.0
H5Zpublic.h File Reference
#include "H5public.h"

Data Structures

struct  H5Z_cb_t
 
struct  H5Z_class2_t
 [H5Z_func_t_snip] More...
 
struct  H5Z_class1_t
 [H5Z_class1_t_snip] More...
 

Macros

#define H5Z_FILTER_ERROR   (-1)
 
#define H5Z_FILTER_NONE   0
 
#define H5Z_FILTER_DEFLATE   1
 
#define H5Z_FILTER_SHUFFLE   2
 
#define H5Z_FILTER_FLETCHER32   3
 
#define H5Z_FILTER_SZIP   4
 
#define H5Z_FILTER_NBIT   5
 
#define H5Z_FILTER_SCALEOFFSET   6
 
#define H5Z_FILTER_RESERVED   256
 
#define H5Z_FILTER_MAX   65535
 
#define H5Z_FILTER_ALL   0
 
#define H5Z_MAX_NFILTERS   32
 
#define H5Z_FLAG_DEFMASK   0x00ff
 
#define H5Z_FLAG_MANDATORY   0x0000
 
#define H5Z_FLAG_OPTIONAL   0x0001
 
#define H5Z_FLAG_INVMASK   0xff00
 
#define H5Z_FLAG_REVERSE   0x0100
 
#define H5Z_FLAG_SKIP_EDC   0x0200
 
#define H5_SZIP_ALLOW_K13_OPTION_MASK   1
 
#define H5_SZIP_CHIP_OPTION_MASK   2
 
#define H5_SZIP_EC_OPTION_MASK   4
 
#define H5_SZIP_NN_OPTION_MASK   32
 
#define H5_SZIP_MAX_PIXELS_PER_BLOCK   32
 
#define H5Z_SHUFFLE_USER_NPARMS   0
 
#define H5Z_SHUFFLE_TOTAL_NPARMS   1
 
#define H5Z_SZIP_USER_NPARMS   2
 
#define H5Z_SZIP_TOTAL_NPARMS   4
 
#define H5Z_SZIP_PARM_MASK   0
 
#define H5Z_SZIP_PARM_PPB   1
 
#define H5Z_SZIP_PARM_BPP   2
 
#define H5Z_SZIP_PARM_PPS   3
 
#define H5Z_NBIT_USER_NPARMS   0 /* Number of parameters that users can set */
 
#define H5Z_SCALEOFFSET_USER_NPARMS   2
 
#define H5Z_SO_INT_MINBITS_DEFAULT   0
 
#define H5Z_CLASS_T_VERS   (1)
 
#define H5Z_FILTER_CONFIG_ENCODE_ENABLED   (0x0001)
 
#define H5Z_FILTER_CONFIG_DECODE_ENABLED   (0x0002)
 

Typedefs

typedef int H5Z_filter_t
 Filter identifiers. More...
 
typedef H5Z_cb_return_t(* H5Z_filter_func_t) (H5Z_filter_t filter, void *buf, size_t buf_size, void *op_data)
 
typedef htri_t(* H5Z_can_apply_func_t) (hid_t dcpl_id, hid_t type_id, hid_t space_id)
 [H5Z_can_apply_func_t_snip] More...
 
typedef herr_t(* H5Z_set_local_func_t) (hid_t dcpl_id, hid_t type_id, hid_t space_id)
 [H5Z_can_apply_func_t_snip] More...
 
typedef size_t(* H5Z_func_t) (unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[], size_t nbytes, size_t *buf_size, void **buf)
 [H5Z_set_local_func_t_snip] More...
 

Enumerations

enum  H5Z_SO_scale_type_t {
  H5Z_SO_FLOAT_DSCALE = 0, H5Z_SO_FLOAT_ESCALE = 1, H5Z_SO_INT = 2, H5Z_SO_FLOAT_DSCALE = 0,
  H5Z_SO_FLOAT_ESCALE = 1, H5Z_SO_INT = 2
}
 
enum  H5Z_EDC_t {
  H5Z_ERROR_EDC = -1, H5Z_DISABLE_EDC = 0, H5Z_ENABLE_EDC = 1, H5Z_NO_EDC = 2,
  H5Z_ERROR_EDC = -1, H5Z_DISABLE_EDC = 0, H5Z_ENABLE_EDC = 1, H5Z_NO_EDC = 2
}
 
enum  H5Z_cb_return_t {
  H5Z_CB_ERROR = -1, H5Z_CB_FAIL = 0, H5Z_CB_CONT = 1, H5Z_CB_NO = 2,
  H5Z_CB_ERROR = -1, H5Z_CB_FAIL = 0, H5Z_CB_CONT = 1, H5Z_CB_NO = 2
}
 

Functions

herr_t H5Zregister (const void *cls)
 [H5Z_class2_t_snip] More...
 
herr_t H5Zunregister (H5Z_filter_t id)
 Unregisters a filter. More...
 
htri_t H5Zfilter_avail (H5Z_filter_t id)
 Determines whether a filter is available. More...
 
herr_t H5Zget_filter_info (H5Z_filter_t filter, unsigned int *filter_config_flags)
 Retrieves information about a filter. More...
 

Macro Definition Documentation

◆ H5Z_CLASS_T_VERS

#define H5Z_CLASS_T_VERS   (1)

Current version of the H5Z_class_t struct

◆ H5Z_FILTER_ALL

#define H5Z_FILTER_ALL   0

Symbol to remove all filters in H5Premove_filter()

◆ H5Z_FILTER_CONFIG_DECODE_ENABLED

#define H5Z_FILTER_CONFIG_DECODE_ENABLED   (0x0002)

◆ H5Z_FILTER_CONFIG_ENCODE_ENABLED

#define H5Z_FILTER_CONFIG_ENCODE_ENABLED   (0x0001)

◆ H5Z_FILTER_DEFLATE

#define H5Z_FILTER_DEFLATE   1

deflation like gzip

◆ H5Z_FILTER_ERROR

#define H5Z_FILTER_ERROR   (-1)

no filter

◆ H5Z_FILTER_FLETCHER32

#define H5Z_FILTER_FLETCHER32   3

fletcher32 checksum of EDC

◆ H5Z_FILTER_MAX

#define H5Z_FILTER_MAX   65535

maximum filter id

◆ H5Z_FILTER_NBIT

#define H5Z_FILTER_NBIT   5

nbit compression

◆ H5Z_FILTER_NONE

#define H5Z_FILTER_NONE   0

reserved indefinitely

◆ H5Z_FILTER_RESERVED

#define H5Z_FILTER_RESERVED   256

filter ids below this value are reserved for library use

◆ H5Z_FILTER_SCALEOFFSET

#define H5Z_FILTER_SCALEOFFSET   6

scale+offset compression

◆ H5Z_FILTER_SHUFFLE

#define H5Z_FILTER_SHUFFLE   2

shuffle the data

◆ H5Z_FILTER_SZIP

#define H5Z_FILTER_SZIP   4

szip compression

◆ H5Z_FLAG_DEFMASK

#define H5Z_FLAG_DEFMASK   0x00ff

definition flag mask

◆ H5Z_FLAG_INVMASK

#define H5Z_FLAG_INVMASK   0xff00

invocation flag mask

◆ H5Z_FLAG_MANDATORY

#define H5Z_FLAG_MANDATORY   0x0000

filter is mandatory

◆ H5Z_FLAG_OPTIONAL

#define H5Z_FLAG_OPTIONAL   0x0001

filter is optional

◆ H5Z_FLAG_REVERSE

#define H5Z_FLAG_REVERSE   0x0100

reverse direction; read

◆ H5Z_FLAG_SKIP_EDC

#define H5Z_FLAG_SKIP_EDC   0x0200

skip EDC filters for read

◆ H5Z_MAX_NFILTERS

#define H5Z_MAX_NFILTERS   32

Maximum number of filters allowed in a pipeline

◆ H5Z_NBIT_USER_NPARMS

#define H5Z_NBIT_USER_NPARMS   0 /* Number of parameters that users can set */

Number of parameters that users can set for the N-bit filter

Typedef Documentation

◆ H5Z_can_apply_func_t

typedef htri_t(* H5Z_can_apply_func_t) (hid_t dcpl_id, hid_t type_id, hid_t space_id)

[H5Z_can_apply_func_t_snip]

Before a dataset gets created, the can_apply callbacks for any filters used in the dataset creation property list are called with the dataset's dataset creation property list, the dataset's datatype and a dataspace describing a chunk (for chunked dataset storage).

The can_apply callback must determine if the combination of the dataset creation property list setting, the datatype and the dataspace represent a valid combination to apply this filter to. For example, some cases of invalid combinations may involve the filter not operating correctly on certain datatypes (or certain datatype sizes), or certain sizes of the chunk dataspace.

The can_apply callback can be the NULL pointer, in which case, the library will assume that it can apply to any combination of dataset creation property list values, datatypes and dataspaces.

The can_apply callback returns positive a valid combination, zero for an invalid combination and negative for an error.

◆ H5Z_filter_func_t

typedef H5Z_cb_return_t(* H5Z_filter_func_t) (H5Z_filter_t filter, void *buf, size_t buf_size, void *op_data)

Filter callback function definition

◆ H5Z_filter_t

typedef int H5Z_filter_t

Filter identifiers.

Values 0 through 255 are for filters defined by the HDF5 library. Values 256 through 511 are available for testing new filters. Subsequent values should be obtained from the HDF5 development team at help@.nosp@m.hdfg.nosp@m.roup..nosp@m.org. These values will never change because they appear in the HDF5 files.

◆ H5Z_func_t

typedef size_t(* H5Z_func_t) (unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[], size_t nbytes, size_t *buf_size, void **buf)

[H5Z_set_local_func_t_snip]

A filter gets definition flags and invocation flags (defined above), the client data array and size defined when the filter was added to the pipeline, the size in bytes of the data on which to operate, and pointers to a buffer and its allocated size.

The filter should store the result in the supplied buffer if possible, otherwise it can allocate a new buffer, freeing the original. The allocated size of the new buffer should be returned through the buf_size pointer and the new buffer through the buf pointer.

The return value from the filter is the number of bytes in the output buffer. If an error occurs then the function should return zero and leave all pointer arguments unchanged. [H5Z_func_t_snip]

◆ H5Z_set_local_func_t

typedef herr_t(* H5Z_set_local_func_t) (hid_t dcpl_id, hid_t type_id, hid_t space_id)

[H5Z_can_apply_func_t_snip]

After the "can_apply" callbacks are checked for new datasets, the set_local callbacks for any filters used in the dataset creation property list are called. These callbacks receive the dataset's private copy of the dataset creation property list passed in to H5Dcreate() (i.e. not the actual property list passed in to H5Dcreate()) and the datatype ID passed in to H5Dcreate() (which is not copied and should not be modified) and a dataspace describing the chunk (for chunked dataset storage) (which should also not be modified).

The set_local callback must set any parameters that are specific to this dataset, based on the combination of the dataset creation property list values, the datatype and the dataspace. For example, some filters perform different actions based on different datatypes (or datatype sizes) or different number of dimensions or dataspace sizes.

The set_local callback can be the NULL pointer, in which case, the library will assume that there are no dataset-specific settings for this filter.

The set_local callback must return non-negative on success and negative for an error. [H5Z_set_local_func_t_snip]

Enumeration Type Documentation

◆ H5Z_cb_return_t

Return values for filter callback function

Enumerator
H5Z_CB_ERROR 
H5Z_CB_FAIL 

I/O should fail if filter fails.

H5Z_CB_CONT 

I/O continues if filter fails.

H5Z_CB_NO 
H5Z_CB_ERROR 
H5Z_CB_FAIL 

I/O should fail if filter fails.

H5Z_CB_CONT 

I/O continues if filter fails.

H5Z_CB_NO