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.