Last modified: 24 August 2012
Name: H5Eset_auto

Signature:
  herr_t `H5Eset_auto`( H5E_auto_t `func`, void *`client_data` )

  herr_t `H5Eset_auto`( hid_t `estack_id`, H5E_auto_t `func`, void *`client_data` )

Purpose:
  Returns settings for automatic error stack traversal function and its data.

Description:
  `H5Eset_auto` is a macro that is mapped to either `H5Eset_auto1` or `H5Eset_auto2`, depending on the needs of the application.

  Such macros are provided to facilitate application compatibility. Their use and mappings are fully described in “API Compatibility Macros in HDF5”; we urge you to read that document closely.

  When both the HDF5 Library and the application are built and installed with no specific compatibility flags, `H5Eset_auto` is mapped to the most recent version of the function, currently `H5Eset_auto2`. If the library and/or application is compiled for Release 1.6 emulation, `H5Eset_auto` will be mapped to `H5Eset_auto1`. Function-specific flags are available to override these settings on a function-by-function basis when the application is compiled.

  Specific compile-time compatibility flags and the resulting mappings are as follows:

  Compatibility setting | `H5Eset_auto` mapping
  --- | ---
  Global settings
  No compatibility flag | `H5Eset_auto2`
  Enable deprecated symbols | `H5Eset_auto2`
  Disable deprecated symbols | `H5Eset_auto2`
  Emulate Release 1.6 interface`` | `H5Eset_auto1`
  Function-level macros
  `H5Eset_auto_vers = 2` | `H5Eset_auto2`
  `H5Eset_auto_vers = 1` | `H5Eset_auto1`

Programming Note for C++ Developers Using C Functions:

  If a C routine that takes a function pointer as an argument is called from within C++ code, the C routine should be returned from normally.

  Examples of this kind of routine include callbacks such as `H5Pset_elink_cb` and `H5Pset_type_conv_cb` and functions such as `H5Tconvert` and `H5Ewalk2`.

  Exiting the routine in its normal fashion allows the HDF5 C Library to clean up its work properly. In other words, if the C++ application jumps out of the routine back to the C++ “catch” statement, the library is not given the opportunity to close any temporary data structures that were set up when the routine was called. The C++ application should save some state as the routine is started so that any problem that occurs might be diagnosed.

Fortran90 Interface: h5eset_auto_f

      SUBROUTINE h5eset_auto_f(printflag, hdferr)
        INTEGER, INTENT(IN) :: printflag  !flag to turn automatic error
                                          !printing on or off
                                          !possible values are:
                                          !printon (1)
                                          !printoff(0)
        INTEGER, INTENT(OUT) :: hdferr    ! Error code

      END SUBROUTINE h5eset_auto_f

Fortran2003 Interface: h5eset_auto_f

History:

  Release | Change
  1.8.0 | The function `H5Eset_auto` renamed to `H5Eset_auto1` and deprecated in this release. The macro `H5Eset_auto` and the function `H5Eset_auto2` introduced in this release.
  1.8.8 | Fortran 2003 version of Fortran subroutine added in this release.