Name: H5Zget_filter_info
Signature:
  herr_t `H5Zget_filter_info`( H5Z_filter_t `filter`, unsigned int *`filter_config` )
Purpose:
  Retrieves information about a filter.
Description:
  `H5Zget_filter_info` retrieves information about a filter. At present, this means that the function retrieves a filter's configuration flags, indicating whether the filter is configured to decode data, to encode data, neither, or both.

  If `filter_config` is not set to NULL prior to the function call, the returned parameter contains a bit field specifying the available filter configuration. The configuration flag values can then be determined through a series of bitwise AND operations, as described below.

  Valid filter configuration flags include the following:

  `` | `H5Z_FILTER_CONFIG_ENCODE_ENABLED` | Encoding is enabled for this filter. In Fortran, `H5Z_FILTER_ENCODE_ENABLED_F`.
  | `H5Z_FILTER_CONFIG_DECODE_ENABLED` | Decoding is enabled for this filter. In Fortran, `H5Z_FILTER_DECODE_ENABLED_F`.
  | (These flags are defined for C in the HDF5 Library source code file `H5Zpublic.h`.)

  A bitwise AND of the returned `filter_config` and a valid filter configuration flag will reveal whether the related configuration option is available. For example, if the value of
  `H5Z_FILTER_CONFIG_ENCODE_ENABLED & filter_config`
  is true, i.e., greater than `0` (zero), the queried filter is configured to encode data; if the value is `FALSE`, i.e., equal to `0` (zero), the filter is not so configured.

  If a filter is not encode-enabled, the corresponding `H5Pset_*` function will return an error if the filter is added to a dataset creation property list (which is required if the filter is to be used to encode that dataset). For example, if the `H5Z_FILTER_CONFIG_ENCODE_ENABLED` flag is not returned for the SZIP filter, `H5Z_FILTER_SZIP`, a call to `H5Pset_szip` will fail.

  If a filter is not decode-enabled, the application will not be able to read an existing file encoded with that filter.

  This function should be called, and the returned `filter_config` analyzed, before calling any other function, such as `H5Pset_szip`, that might require a particular filter configuration.

Parameters:
  H5Z_filter_t `filter`
    IN: Identifier of the filter to query. See the introduction to this section of the reference manual for a list of valid filter identifiers.
  unsigned int *`filter_config`
    OUT: A bit field encoding the returned filter information
Returns:
  Returns a non-negative value on success, a negative value on failure.
Fortran90 Interface:

      SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr)

        IMPLICIT NONE
        INTEGER, INTENT(IN)  :: filter        ! Filter, may be one of the
                                              ! following:
                                              !     H5Z_FILTER_DEFLATE_F
                                              !     H5Z_FILTER_SHUFFLE_F
                                              !     H5Z_FILTER_FLETCHER32_F
                                              !     H5Z_FILTER_SZIP_F
        INTEGER, INTENT(OUT) :: config_flags  ! Bit field indicating whether
                                              ! a filter's encoder and/or
                                              ! decoder are available
        INTEGER, INTENT(OUT) :: hdferr        ! Error code

      END SUBROUTINE h5zfilter_avail_f

History:

Release | C
1.6.3 | Function introduced in this release. Fortran subroutine introduced in this release.